:root{--paper: #ffffff;--surface: #ffffff;--band: #f1f4f5;--ink: #0e1113;--ink-2: #454c50;--muted: #6a7276;--line: #dfe4e6;--teal: #1e6c93;--chrome: #000000;--chrome-ink: #f4f6f7;--chrome-2: #8c979b;--hl-green: #00ff00;--hl-cyan: #00ffff;--hl-yellow: #ffff00;--hl-blue: #2b5bff;--hl-orange: #ff9a00;--hl-red: #ff1a1a;--hl-pink: #ff0080;--accent: var(--hl-cyan);--f-display: "Archivo", "IBM Plex Sans Thai", system-ui, sans-serif;--f-body: "IBM Plex Sans Thai", "IBM Plex Sans", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--font: var(--f-body);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-io: cubic-bezier(.65, 0, .35, 1);--radius: 4px;--wrap: 1240px;--gutter-l: max(24px, env(safe-area-inset-left, 0px));--gutter-r: max(24px, env(safe-area-inset-right, 0px));--header-h: 76px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0b0e10;--surface: #13181b;--band: #0f1316;--ink: #eef1f2;--ink-2: #b1babe;--muted: #879296;--line: #252c30;--teal: #6cc3ea;color-scheme:dark}}:root[data-theme=dark]{--paper: #0b0e10;--surface: #13181b;--band: #0f1316;--ink: #eef1f2;--ink-2: #b1babe;--muted: #879296;--line: #252c30;--teal: #6cc3ea;color-scheme:dark}@media (max-width: 560px){:root{--gutter-l: max(16px, env(safe-area-inset-left, 0px));--gutter-r: max(16px, env(safe-area-inset-right, 0px));--header-h: 64px}}.accent-green{--accent: var(--hl-green)}.accent-cyan{--accent: var(--hl-cyan)}.accent-yellow{--accent: var(--hl-yellow)}.accent-blue{--accent: var(--hl-blue)}.accent-orange{--accent: var(--hl-orange)}.accent-red{--accent: var(--hl-red)}.accent-pink{--accent: var(--hl-pink)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);-webkit-text-size-adjust:100%}html.menu-open{overflow:hidden}body{margin:0;font-family:var(--f-body);font-size:1rem;color:var(--ink);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;display:block}a{color:inherit}button{font:inherit;cursor:pointer;color:inherit}h1,h2,h3{line-height:1.1;margin:0;text-wrap:balance;font-family:var(--f-display)}p{text-wrap:pretty}::selection{background:var(--hl-cyan);color:#000}:focus-visible{outline:2px solid var(--hl-cyan);outline-offset:3px}.mono{font-family:var(--f-mono);font-weight:500;letter-spacing:.02em}.muted{color:var(--muted)}.center{text-align:center;margin-top:40px}.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter-l);padding-right:var(--gutter-r)}.skip{position:fixed;left:-999px;top:8px;z-index:200;background:#fff;color:#000;padding:8px 12px}.skip:focus{left:8px}.page{animation:page-in .55s var(--ease-out) both}@keyframes page-in{0%{opacity:0}to{opacity:1}}html.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease-out),transform 1s var(--ease-out);transition-delay:calc(var(--d, 0) * 90ms)}html.js [data-reveal].in{opacity:1;transform:none}html.js:not(.booted) .hero-in{opacity:0}html.booted .hero-in{animation:rise .9s var(--ease-out) both;animation-delay:calc(var(--d, 0) * .11s + .12s)}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.split-w{display:inline-block;vertical-align:bottom;clip-path:inset(-.4em -.5em 0 -.5em)}.split-w>span{display:inline-block}html.js:not(.booted) .split-w>span{transform:translateY(115%)}html.booted .split-w>span{animation:word-up 1.05s var(--ease-out) both;animation-delay:calc(var(--d, 0) * 85ms + 80ms)}@keyframes word-up{0%{transform:translateY(115%)}to{transform:none}}.zoom{overflow:hidden;display:block}.zoom img{transition:transform 1s var(--ease-out),filter .6s}.zoom:hover img,.zoom:focus-visible img{transform:scale(1.06)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}html.js [data-reveal]{opacity:1;transform:none}.split-w>span{transform:none!important}}.tag{display:inline-block;font-family:var(--f-mono);font-size:.78rem;font-weight:600;letter-spacing:.04em;padding:3px 9px;color:#000;line-height:1.5}.tag-green{background:var(--hl-green)}.tag-cyan{background:var(--hl-cyan)}.tag-yellow{background:var(--hl-yellow)}.tag-blue{background:var(--hl-blue);color:#fff}.tag-orange{background:var(--hl-orange)}.tag-red{background:var(--hl-red);color:#fff}.tag-pink{background:var(--hl-pink);color:#fff}.btn{--bg: var(--ink);--fg: var(--paper);--fill: var(--accent);--fill-fg: #000;position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:10px;padding:14px 24px;font-family:var(--f-body);font-weight:600;font-size:.95rem;text-decoration:none;line-height:1.2;background:var(--bg);color:var(--fg);border:1.5px solid var(--bg);border-radius:0;transition:color .45s var(--ease-out),border-color .45s}.btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--fill);transform:translateY(101%);transition:transform .5s var(--ease-out)}.btn:hover:before,.btn:focus-visible:before{transform:none}.btn:hover,.btn:focus-visible{color:var(--fill-fg);border-color:var(--fill)}.btn i{font-style:normal;transition:transform .45s var(--ease-out)}.btn:hover i{transform:translate(3px)}.btn-light{--bg: #fff;--fg: #000}.btn-outline{--bg: transparent;--fg: #fff;border-color:#ffffffb3}.btn-dark{--bg: var(--ink);--fg: var(--paper)}.btn-small{padding:8px 14px;font-size:.85rem}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;font-size:.8rem;font-weight:600;text-decoration:none;background:transparent;color:var(--ink-2);border:1px solid var(--line);transition:border-color .3s,color .3s,background .3s}.chip:hover{border-color:var(--ink);color:var(--ink)}.link-arrow{display:inline-flex;gap:6px;align-items:baseline;font-weight:600;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100% / 0 1.5px no-repeat;transition:background-size .45s var(--ease-out);color:var(--teal)}.link-arrow:hover{background-size:100% 1.5px}.link-arrow i{font-style:normal;transition:transform .4s var(--ease-out)}.link-arrow:hover i{transform:translate(2px,-2px)}.site-header{position:fixed;inset:0 0 auto 0;z-index:60;color:var(--chrome-ink);padding-top:env(safe-area-inset-top,0px);transition:transform .5s var(--ease-out),background-color .35s,backdrop-filter .35s,border-color .35s;border-bottom:1px solid transparent}.site-header.is-solid{background:#000000d1;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom-color:#ffffff14}.site-header.is-hidden{transform:translateY(-100%)}.header-row{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;position:relative;z-index:2}.brand-mark{width:36px;display:block;transition:transform .6s var(--ease-out)}.brand:hover .brand-mark{transform:rotate(-6deg) scale(1.06)}.brand-mark .logo{width:100%;height:auto;display:block}.brand-name{font-family:var(--f-display);font-stretch:112%;font-weight:800;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.15}.nav{display:flex;align-items:center;gap:2px}.nav-link{display:inline-flex;align-items:center;gap:4px;padding:10px 12px;color:inherit;text-decoration:none;font-size:.92rem;font-weight:500;background:none;border:0}.nav-link span{position:relative}.nav-link span:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--hl-cyan);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}.nav-link:hover span:after,.nav-link.active span:after{transform:scaleX(1);transform-origin:left}.nav-link i{font-style:normal;font-size:.7em;opacity:.7}.nav-group{position:relative}.dropdown{position:absolute;top:calc(100% + 4px);left:-6px;min-width:170px;padding:8px;background:#000000eb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.1);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out),visibility 0s .3s}.nav-group:hover .dropdown,.nav-group:focus-within .dropdown{opacity:1;visibility:visible;transform:none;transition-delay:0s}.dropdown .nav-link{display:flex;width:100%;padding:9px 12px;font-family:var(--f-mono);font-size:.85rem}.dropdown .nav-link:hover,.dropdown .nav-link.active{background:#ffffff12;color:var(--hl-cyan)}.nav-login{margin-left:12px;padding:8px 16px;border:1px solid rgba(255,255,255,.5);border-radius:99px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .3s,color .3s,border-color .3s}.nav-login:hover{border-color:var(--hl-cyan);color:var(--hl-cyan)}.nav-login.is-admin{background:var(--hl-cyan);border-color:var(--hl-cyan);color:#000}.menu-btn{display:none;position:relative;z-index:2;width:44px;height:44px;background:none;border:0;padding:0}.menu-btn span{position:absolute;left:10px;right:10px;height:2px;background:var(--chrome-ink);transition:transform .45s var(--ease-out),top .45s var(--ease-out)}.menu-btn span:nth-child(1){top:17px}.menu-btn span:nth-child(2){top:26px}.menu-btn[aria-expanded=true] span:nth-child(1){top:21px;transform:rotate(45deg)}.menu-btn[aria-expanded=true] span:nth-child(2){top:21px;transform:rotate(-45deg)}@media (max-width: 960px){.menu-btn{display:block}.nav{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:calc(var(--header-h) + 24px + env(safe-area-inset-top,0px)) var(--gutter-r) calc(32px + env(safe-area-inset-bottom,0px)) var(--gutter-l);background:var(--chrome);overflow-y:auto;clip-path:circle(0 at calc(100% - 44px) 38px);visibility:hidden;transition:clip-path .7s var(--ease-io),visibility 0s .7s}.is-open .nav{clip-path:circle(150vmax at calc(100% - 44px) 38px);visibility:visible;transition:clip-path .7s var(--ease-io)}.nav>*{opacity:0;transform:translateY(18px)}.is-open .nav>*{animation:rise .6s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 55ms + .18s)}.nav-link{font-family:var(--f-display);font-stretch:110%;font-weight:700;font-size:clamp(1.6rem,7vw,2.4rem);padding:10px 0;border-bottom:1px solid #1c2124}.nav-link span:after{bottom:2px}.nav-group>.nav-link i{display:none}.dropdown{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;padding:6px 0 12px;display:flex;flex-wrap:wrap;gap:6px;-webkit-backdrop-filter:none;backdrop-filter:none}.dropdown .nav-link{width:auto;font-size:.95rem;border:1px solid #2a3135;border-radius:99px;padding:6px 14px}.nav-login{margin:28px 0 0;text-align:center;padding:14px;font-size:1rem}}.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#1c2350;padding-block:calc(var(--header-h) + 60px) 140px}.hero-bg{position:absolute;top:-6%;right:-2%;bottom:-6%;left:-2%;background-size:cover;background-position:center;transform:translate3d(0,calc(var(--p, 0) * 14%),0) scale(calc(1.06 + var(--p, 0) * .1));will-change:transform}.hero-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#00000073,#0000000d 38%,#00000080)}.hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:96px 96px;mask-image:radial-gradient(ellipse at 30% 60%,#000 10%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 30% 60%,#000 10%,transparent 70%)}.hero-inner{position:relative;z-index:2}.hero-eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 18px;font-size:.85rem}.hero-eyebrow .mono{opacity:.85;letter-spacing:.12em;text-transform:uppercase}.hero-title{font-size:clamp(2.5rem,8.8vw,9.2rem);font-weight:800;font-stretch:112%;letter-spacing:-.04em;line-height:.95;text-transform:capitalize;margin:0 0 28px}@media (max-width: 560px){.hero-title{font-stretch:100%}}.hero-text{max-width:56ch;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.7;opacity:.92;margin:0 0 30px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}.hero-waves{position:absolute;left:0;right:0;bottom:0;width:100%;height:120px;z-index:1;pointer-events:none}.hero-waves path{fill:none;stroke:#fff;stroke-width:1.4;vector-effect:non-scaling-stroke}.wv1{opacity:.5;animation:wave 14s linear infinite}.wv2{opacity:.3;animation:wave2 19s linear infinite}.wv3{opacity:.18;animation:wave3 25s linear infinite}@keyframes wave{to{transform:translate(-720px)}}@keyframes wave2{to{transform:translate(-960px)}}@keyframes wave3{to{transform:translate(-1200px)}}.scroll-cue{position:absolute;z-index:2;right:var(--gutter-r);bottom:36px;display:flex;flex-direction:column;align-items:center;gap:10px;background:none;border:0;color:#fff;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;writing-mode:vertical-rl}.scroll-cue i{width:1px;height:54px;background:#ffffff4d;position:relative;overflow:hidden}.scroll-cue i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;animation:drip 2s var(--ease-io) infinite}@keyframes drip{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@media (max-width: 760px){.scroll-cue{display:none}.hero{padding-bottom:110px}}.countdown{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:6px 22px;padding:14px 20px 14px 18px;color:#fff;text-decoration:none;background:#00000061;border-left:3px solid var(--hl-green);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .3s}.countdown:hover{background:#0000008c}.cd-label{grid-column:1 / -1;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--hl-green)}.cd-nums{display:flex;gap:14px}.cd-unit{display:grid;justify-items:center;min-width:3ch}.cd-unit b{font-family:var(--f-display);font-stretch:108%;font-weight:700;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums;display:block;animation:tick .5s var(--ease-out)}.cd-unit small{font-size:.68rem;opacity:.75;margin-top:4px}@keyframes tick{0%{transform:translateY(-40%);opacity:0}to{transform:none;opacity:1}}.cd-live{font-weight:800;color:var(--hl-green)}.cd-what{display:grid;font-size:.85rem;line-height:1.35;max-width:26ch}.cd-what span{opacity:.8}@media (max-width: 560px){.countdown{grid-template-columns:1fr}}.marquee{overflow:hidden;background:var(--chrome);color:var(--chrome-ink);border-block:1px solid #1a1f22;padding-block:18px}.marquee-light{background:var(--accent);color:#000;border:0}.marquee-track{display:flex;width:max-content;animation:marquee 38s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}.marquee span{display:inline-flex;align-items:center;gap:28px;padding-right:28px;white-space:nowrap;font-family:var(--f-display);font-stretch:115%;font-weight:800;font-size:clamp(1.3rem,3vw,2.4rem);letter-spacing:-.01em;text-transform:uppercase}.marquee i{font-style:normal;color:var(--hl-cyan);font-size:.6em}.marquee-light i{color:#000}@keyframes marquee{to{transform:translate(-50%)}}.section{padding-block:clamp(72px,10vw,128px)}.section.band{background:var(--band)}.chrome-band{background:var(--chrome);color:var(--chrome-ink)}.sec-head{margin-bottom:clamp(32px,5vw,56px);max-width:62rem}.sec-head.is-center{margin-inline:auto;text-align:center}.sec-kicker{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-family:var(--f-mono);font-size:.76rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.sec-kicker:after{content:"";flex:0 1 64px;height:1px;background:currentColor;opacity:.5}.sec-no{display:inline-grid;place-items:center;min-width:2.6em;padding:2px 6px;background:var(--accent);color:#000;font-weight:600;letter-spacing:.05em}.sec-head h2{font-size:clamp(2rem,5.2vw,4rem);font-weight:800;font-stretch:108%;letter-spacing:-.025em}.sec-lead{margin:16px 0 0;color:var(--ink-2);max-width:60ch;font-size:1.05rem}.chrome-band .sec-kicker,.map-band .sec-kicker{color:var(--chrome-2)}.chrome-band .sec-lead,.map-band .sec-lead{color:#a9b3b8}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(24px,6vw,80px);align-items:start}.split .sec-head h2{font-size:clamp(1.8rem,3.6vw,2.8rem)}.prose{max-width:65ch}.prose p{margin:0 0 1.15em;font-size:1.06rem;color:var(--ink-2)}.prose p:first-child{font-size:clamp(1.15rem,1.8vw,1.35rem);line-height:1.6;color:var(--ink)}.lead-text{font-family:var(--f-display);font-stretch:100%;font-weight:400;font-size:clamp(1.25rem,2.6vw,1.9rem);line-height:1.45;max-width:52ch;margin:0 0 clamp(40px,6vw,72px)}@media (max-width: 860px){.split{grid-template-columns:1fr;gap:8px}}.timeline{list-style:none;margin:0;padding:0 0 0 34px;position:relative;display:grid;gap:18px}.timeline:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:var(--line)}.event{position:relative}.event-dot{position:absolute;left:-34px;top:30px;width:15px;height:15px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);transition:background .4s,transform .4s var(--ease-out)}.event.in .event-dot{background:var(--accent);border-color:#000}.event.is-past .event-dot{border-color:var(--line);background:var(--band)}.event-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:28px;padding:26px 28px;background:var(--surface);border:1px solid var(--line);position:relative;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out),border-color .4s}.event-card:before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:4px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--ease-out)}.event-card:hover{transform:translate(6px);box-shadow:0 18px 40px -24px #00000059}.event-card:hover:before,.event.is-now .event-card:before{transform:scaleY(1)}.event-date{display:flex;flex-direction:column;line-height:1}.event-date .dow,.event-date .my,.event-date .until{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.14em;color:var(--muted)}.event-date .day{font-family:var(--f-display);font-stretch:110%;font-weight:800;font-size:4.2rem;letter-spacing:-.04em;margin:6px 0 8px;font-variant-numeric:tabular-nums}.event-date .until{margin-top:10px}.event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.status{font-family:var(--f-mono);font-size:.72rem;font-weight:600;padding:2px 10px;border-radius:99px;border:1px solid currentColor}.status-upcoming{color:var(--teal)}.status-now{color:#0a8a0a}.status-past{color:var(--muted)}.event h3{font-size:clamp(1.25rem,2.2vw,1.6rem);font-weight:700;font-stretch:104%}.event-sub{margin:6px 0 0;color:var(--ink-2)}.event-time{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;font-family:var(--f-mono);font-size:.85rem;color:var(--ink-2)}.event-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:16px}.event-action{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:18px;padding:14px 16px;background:var(--band)}.event-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.event-photos button{padding:0;border:0;background:var(--line)}.event-photos img{aspect-ratio:4 / 3;object-fit:cover;width:100%}.event.is-past .event-card{background:transparent}.event.is-past h3,.event.is-past .day{color:var(--muted)}.past-events{margin-top:48px}.past-events summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--f-display);font-weight:700;font-size:1.3rem}.past-events summary::-webkit-details-marker{display:none}.past-events summary .mono:after{content:"＋";margin-left:12px;display:inline-block;transition:transform .4s var(--ease-out)}.past-events[open] summary .mono:after{transform:rotate(45deg)}.past-events .timeline{margin-top:24px}@media (max-width: 680px){.timeline{padding-left:22px}.timeline:before{left:4px}.event-dot{left:-22px;width:11px;height:11px;top:26px}.event-card{grid-template-columns:1fr;gap:12px;padding:20px}.event-date{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.event-date .day{font-size:2.6rem;margin:0;order:-1}.event-date .until{margin:0}.event-card:hover{transform:none}}.masonry{columns:3 260px;column-gap:12px}.masonry-item{position:relative;display:block;width:100%;margin:0 0 12px;padding:0;border:0;background:var(--line);break-inside:avoid}.masonry-item img{width:100%;height:auto}.masonry-no{position:absolute;left:10px;bottom:10px;padding:2px 8px;background:#0009;color:#fff;font-size:.72rem;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s var(--ease-out)}.masonry-item:hover .masonry-no{opacity:1;transform:none}.trio{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:12px}.trio button{padding:0;border:0;background:var(--line)}.trio img{width:100%;height:100%;aspect-ratio:4 / 3;object-fit:cover}.wide-photo{display:block;width:100%;margin-top:12px;padding:0;border:0;background:none}.wide-photo img{width:100%}@media (max-width: 640px){.trio{grid-template-columns:1fr 1fr}.trio button:first-child{grid-column:1 / -1}}.lecture-list{list-style:none;padding:0;margin:0 0 56px;border-top:2px solid var(--ink)}.lecture-list a{position:relative;display:grid;grid-template-columns:110px minmax(0,1fr) 32px;gap:16px;align-items:center;padding:24px 6px;border-bottom:1px solid var(--line);text-decoration:none;overflow:hidden;isolation:isolate;transition:padding .5s var(--ease-out),color .4s}.lecture-list a:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--hl-cyan);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease-out)}.lecture-list a:hover,.lecture-list a:focus-visible{color:#000;padding-left:20px}.lecture-list a:hover:before,.lecture-list a:focus-visible:before{transform:none}.vdo{font-size:.8rem;color:var(--muted)}.lecture-list a:hover .vdo{color:#000}.lt{font-size:clamp(1.02rem,1.8vw,1.2rem);font-weight:500}.arrow{font-size:1.3rem;text-align:right;transition:transform .45s var(--ease-out)}.lecture-list a:hover .arrow{transform:translate(3px,-3px)}@media (max-width: 560px){.lecture-list a{grid-template-columns:1fr 24px}.vdo{grid-column:1 / -1}}.videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.video-embed{margin:0;min-width:0}.ratio{position:relative;aspect-ratio:16 / 9;max-width:100%;background:#000;overflow:hidden}.ratio iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.video-embed figcaption{margin-top:12px;font-size:.92rem;color:var(--ink-2)}.single-video{max-width:960px}@media (max-width: 760px){.videos{grid-template-columns:1fr}}.refs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ref-card{display:grid;grid-template-rows:auto 1fr auto;background:var(--surface);text-decoration:none;border:1px solid var(--line);transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}.ref-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px #0006}.ref-img img{aspect-ratio:4 / 3;object-fit:cover;width:100%}.ref-title{padding:16px 18px 6px;font-weight:600;line-height:1.4}.ref-cta{padding:0 18px 16px;font-size:.78rem;color:var(--teal)}.ref-links{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-wrap:wrap;gap:12px 32px}.floating{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:32px;align-items:center;margin-top:88px;padding-top:56px;border-top:1px solid var(--line)}.floating h3{font-size:clamp(2rem,4vw,3rem);font-weight:800;font-stretch:110%;margin:14px 0 16px;letter-spacing:-.02em}.floating-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.floating-imgs button{padding:0;border:0;background:var(--line)}.floating-imgs img{aspect-ratio:1;object-fit:cover;width:100%}@media (max-width: 760px){.refs,.floating{grid-template-columns:1fr}}.globe-band{overflow:clip;background-color:var(--paper);background-image:linear-gradient(var(--band) 1px,transparent 1px),linear-gradient(90deg,var(--band) 1px,transparent 1px);background-size:32px 32px;border-block:1px solid var(--line)}.globe-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:"head globe" "list globe";column-gap:clamp(24px,5vw,72px);align-items:start}.globe-head{grid-area:head}.globe-list{grid-area:list}.globe-frame{grid-area:globe;align-self:start;position:sticky;top:calc(var(--header-h) + 24px)}.globe-frame{max-width:620px;width:100%;justify-self:center}.globe-frame svg{width:100%;height:auto;display:block;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;overflow:visible}.globe-frame svg:active{cursor:grabbing}.globe-sea{fill:var(--paper)}.globe-grat{fill:none;stroke:var(--line);stroke-width:.8}.globe-land{fill:url(#globe-hatch)}.hatch-line{stroke:var(--ink);stroke-width:1;opacity:.38}.globe-coast{fill:none;stroke:var(--ink);stroke-width:.8;stroke-linejoin:round;opacity:.8}.globe-shade{pointer-events:none}.globe-rim{fill:none;stroke:var(--ink);stroke-width:1.4}.globe-loading{fill:var(--muted);font-size:15px;font-family:var(--f-mono)}.globe-pin{cursor:pointer;outline:none}.pin-stem{stroke:var(--ink);stroke-width:1.4}.pin-head{stroke:var(--ink);stroke-width:1.4;transition:r .25s var(--ease-out)}.pin-foot{fill:var(--ink)}.globe-pin:hover .pin-head,.globe-pin:focus-visible .pin-head,.globe-pin.on .pin-head{r:9.5}.globe-tip{position:absolute;transform:translate(-50%,calc(-100% - 10px));pointer-events:none;z-index:2;display:grid;gap:2px;min-width:180px;max-width:280px;padding:10px 14px;background:var(--surface);color:var(--ink);border:1px solid var(--ink);box-shadow:4px 4px 0 var(--ink);font-size:.82rem;animation:rise .3s var(--ease-out)}.globe-tip strong{font-family:var(--f-display);font-size:.92rem;line-height:1.3}.globe-tip .mono{font-size:.72rem;color:var(--muted)}.globe-hint{position:absolute;right:0;bottom:-4px;margin:0;font-size:.72rem;color:var(--muted)}.globe-list{list-style:none;padding:0;margin:0;display:grid;gap:18px}.globe-list li{display:grid;gap:8px;padding-top:14px;border-top:1px solid var(--line)}.globe-year{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600}.globe-year i{width:10px;height:10px;border-radius:50%;border:1px solid var(--ink)}.globe-links{display:grid;gap:2px}.globe-item{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;padding:6px 8px;margin:0 -8px;transition:background .25s}.globe-item.on{background:var(--surface)}.globe-item button{grid-column:1;text-align:left;background:none;border:0;padding:0;font:inherit;font-weight:600;line-height:1.35}.globe-item small{grid-column:1;font-size:.78rem;color:var(--muted)}.globe-item a{grid-column:2;grid-row:1 / 3;align-self:center;text-decoration:none;padding:4px 8px;border:1px solid var(--line);transition:background .25s,color .25s,border-color .25s}.globe-item a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media (max-width: 900px){.globe-layout{grid-template-columns:1fr;grid-template-areas:"head" "globe" "list"}.globe-frame{position:relative;top:0;max-width:480px;margin-bottom:32px}}.page-hero{position:relative;overflow:hidden;background:var(--chrome);color:var(--chrome-ink);padding-block:calc(var(--header-h) + 80px + env(safe-area-inset-top,0px)) clamp(56px,8vw,96px)}.page-hero-inner{position:relative;z-index:2}.page-hero h1{font-size:clamp(2.8rem,8vw,7rem);font-weight:800;font-stretch:112%;letter-spacing:-.035em;margin:22px 0 14px;text-transform:capitalize;line-height:.95}.page-hero-big{margin:10px 0 0;font-family:var(--f-display);font-stretch:115%;font-weight:900;font-size:clamp(6rem,25vw,22rem);line-height:.8;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.page-hero-big span{color:transparent;-webkit-text-stroke:2px var(--accent);background:linear-gradient(to top,var(--accent) 50%,transparent 50%) 0 0 / 100% 200% no-repeat;-webkit-background-clip:text;background-clip:text;animation:fill-up 1.6s .3s var(--ease-io) forwards}@keyframes fill-up{to{background-position:0 100%}}.page-hero-sub{font-size:clamp(1.05rem,2vw,1.4rem);font-weight:300;max-width:44ch;margin:0;color:#c7cfd2}.page-hero-mark{position:absolute;right:-6%;top:50%;width:min(62vw,640px);height:auto;transform:translateY(-46%);opacity:.22;z-index:1}.page-hero-mark path{stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s .2s var(--ease-io) forwards}@keyframes draw{to{stroke-dashoffset:0}}.page-hero-water{position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--accent);transform-origin:left;animation:grow-x 1.2s .4s var(--ease-io) both}@keyframes grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.year-switch{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.year-switch a{padding:6px 16px;font-family:var(--f-mono);font-size:.85rem;text-decoration:none;border:1px solid #3a4246;border-radius:99px;transition:border-color .3s,background .3s,color .3s}.year-switch a:hover{border-color:var(--accent)}.year-switch a.on{background:var(--accent);border-color:var(--accent);color:#000}.people{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 18px;margin-bottom:64px}.people:last-child{margin-bottom:0}.person{display:flex;flex-direction:column;gap:6px;text-decoration:none;min-width:0}.person-photo{display:block;aspect-ratio:4 / 5;overflow:hidden;background:var(--line);margin-bottom:8px;position:relative}.person-photo:after{content:"";position:absolute;inset:auto 0 0;height:4px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}.person-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .6s,transform 1s var(--ease-out)}.person:hover .person-photo img{filter:none;transform:scale(1.04)}.person:hover .person-photo:after{transform:scaleX(1)}.person-photo.is-empty{display:grid;place-items:center;align-content:center;gap:6px;background:var(--band);border:1px dashed var(--line)}.person-photo.is-empty svg{width:46%;height:auto;fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round}.person-photo.is-empty .ground{stroke-dasharray:3 4}.person-photo.is-empty small{font-size:.78rem;color:var(--muted)}.person-name{font-weight:600;line-height:1.35;overflow-wrap:anywhere}.person-more{font-size:.76rem;color:var(--teal)}@media (max-width: 860px){.people{grid-template-columns:repeat(2,minmax(0,1fr))}}.thesis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.thesis-card{display:flex;flex-direction:column;text-align:left;padding:0;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);text-decoration:none;min-width:0;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}.thesis-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px #00000073}.thesis-img{aspect-ratio:1;background:var(--line)}.thesis-img img{width:100%;height:100%;object-fit:cover}.thesis-card:hover .thesis-img img{transform:scale(1.06)}.thesis-text{display:flex;flex-direction:column;gap:6px;padding:16px 18px 20px;flex:1;position:relative}.thesis-text:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}.thesis-card:hover .thesis-text:before{transform:scaleX(1)}.thesis-no{font-size:.76rem;color:var(--muted)}.thesis-text strong{font-family:var(--f-display);font-weight:700;font-size:1.05rem;line-height:1.3}.thesis-by{font-size:.88rem;color:var(--ink-2)}.thesis-more{margin-top:auto;padding-top:8px;font-size:.85rem;font-weight:600;color:var(--teal)}.thesis-more i{font-style:normal;display:inline-block;transition:transform .4s var(--ease-out)}.thesis-card:hover .thesis-more i{transform:translate(4px)}@media (max-width: 1000px){.thesis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 440px){.thesis{grid-template-columns:1fr}}.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-block:0 clamp(64px,8vw,104px)}.pager a{display:grid;gap:8px;padding:28px 0;border-top:2px solid var(--ink);text-decoration:none;transition:color .3s,padding .5s var(--ease-out)}.pager a strong{font-family:var(--f-display);font-stretch:106%;font-size:clamp(1.1rem,2.4vw,1.7rem);line-height:1.2}.pager .mono{font-size:.8rem;color:var(--muted)}.pager-next{text-align:right;grid-column:2}.pager a:hover{color:var(--teal)}.pager-prev:hover{padding-left:10px}.pager-next:hover{padding-right:10px}@media (max-width: 640px){.pager{grid-template-columns:1fr}.pager-next{grid-column:1;text-align:left}}.thesis-hero{position:relative;overflow:hidden;min-height:82svh;display:flex;align-items:flex-end;background:var(--chrome);color:#fff;padding-block:calc(var(--header-h) + 80px) 64px;border-bottom:10px solid var(--accent)}.thesis-hero-bg{position:absolute;top:-8%;right:0;bottom:-8%;left:0;background-size:cover;background-position:center;opacity:.55;transform:translate3d(0,calc(var(--p, 0) * 16%),0) scale(1.08)}.thesis-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#00000080,#0000001a 40%,#000000d9)}.thesis-hero-inner{position:relative;z-index:2}.thesis-hero h1{font-size:clamp(2.2rem,5.6vw,5rem);font-weight:800;font-stretch:106%;letter-spacing:-.025em;max-width:20ch;margin:18px 0 16px;line-height:1.02}.thesis-th{font-size:1.1rem;margin:0 0 8px;opacity:.9;max-width:60ch}.thesis-author{margin:0;font-weight:600}.thesis-author .mono{font-weight:400;opacity:.7;font-size:.85rem}.back-link{display:inline-block;margin-bottom:18px;color:inherit;text-decoration:none;font-family:var(--f-mono);font-size:.85rem;opacity:.8}.back-link:hover{opacity:1;color:var(--accent)}.hero-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.hero-strip figure,.models-grid figure,.final-grid figure{margin:0;min-width:0}.hero-strip button,.models-grid button,.final-grid button{display:block;width:100%;padding:0;border:0;background:var(--line);cursor:zoom-in}.hero-strip img{aspect-ratio:3 / 2;object-fit:cover;width:100%}.facts{margin:32px 0 0;border-top:2px solid var(--ink)}.facts div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.facts dt{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;padding-top:.3em;color:var(--muted)}.facts dd{margin:0;color:var(--ink-2)}@media (max-width: 520px){.facts div{grid-template-columns:1fr;gap:2px}}.social{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.portfolio-track{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(200px,24vw,320px);gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:8px 2px 20px;scrollbar-width:none;cursor:grab}.portfolio-track::-webkit-scrollbar{display:none}.portfolio-page{position:relative;scroll-snap-align:start;padding:0;border:0;background:#fff;box-shadow:0 1px 0 var(--line),0 18px 34px -24px #0006;transition:transform .5s var(--ease-out),box-shadow .5s;cursor:zoom-in}.portfolio-page img{aspect-ratio:1444 / 2048;object-fit:cover;width:100%}.portfolio-page span{position:absolute;left:10px;top:10px;padding:2px 8px;background:#000;color:#fff;font-size:.72rem}.portfolio-page:hover{transform:translateY(-8px);box-shadow:0 30px 50px -26px #00000080}.portfolio-bar{display:flex;align-items:center;gap:16px;margin-top:8px}.portfolio-bar button{width:44px;height:44px;border:1px solid var(--ink);background:transparent;transition:background .3s,color .3s}.portfolio-bar button:hover:not(:disabled){background:var(--ink);color:var(--paper)}.portfolio-bar button:disabled{opacity:.3;cursor:default}.portfolio-progress{flex:1;height:2px;background:var(--line)}.portfolio-progress i{display:block;height:100%;background:var(--ink);transform-origin:left;transition:transform .2s}.chart-board{display:block;width:100%;padding:0;border:1px solid var(--line);background:var(--surface);cursor:zoom-in}.chart-board img{width:100%}.models-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.models-grid img{aspect-ratio:1;object-fit:cover;width:100%}.models-grid figcaption{font-size:.82rem;color:var(--ink-2);margin-top:6px}.final-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.final-grid img{aspect-ratio:4 / 3;object-fit:cover;width:100%}@media (max-width: 640px){.models-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.final-grid{grid-template-columns:1fr}}.principles{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}.principles li{padding:32px 28px 36px 0;min-width:0;position:relative}.principles li+li{padding-left:28px;border-left:1px solid var(--line)}.principle-no{display:block;font-size:.8rem;color:var(--muted);margin-bottom:40px}.principles h3{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:800;font-stretch:108%;margin-bottom:14px}.principles p{margin:0;color:var(--ink-2)}@media (max-width: 860px){.principles{grid-template-columns:1fr}.principles li,.principles li+li{padding:28px 0;border-left:0;border-bottom:1px solid var(--line)}}.statement{margin:0 0 clamp(48px,7vw,88px);padding-left:clamp(16px,3vw,32px);border-left:6px solid var(--accent);max-width:980px}.statement p{margin:0;font-family:var(--f-display);font-weight:400;font-size:clamp(1.4rem,3vw,2.3rem);line-height:1.38;letter-spacing:-.01em}.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.pillars figure{margin:0}.pillars img{aspect-ratio:4 / 5;object-fit:cover;width:100%;background:var(--line)}.pillars figcaption{display:grid;gap:4px;margin-top:14px;font-weight:700;font-family:var(--f-display)}.pillars figcaption .mono{font-size:.76rem;color:var(--muted);font-weight:500}@media (max-width: 860px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}.aims{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}.aims li{display:grid;grid-template-columns:56px 1fr;padding:28px 0;border-top:1px solid #262c2f;font-family:var(--f-display);font-stretch:104%;font-size:clamp(1.2rem,2.4vw,1.75rem);font-weight:700;line-height:1.25}.aims li .mono{color:var(--accent);font-size:.85rem;padding-top:.4em}@media (max-width: 760px){.aims{grid-template-columns:1fr}}.submit-list{display:grid;gap:16px}.submit-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;align-items:center;padding:28px 32px;text-decoration:none;background:var(--surface);border:1px solid var(--line);position:relative;overflow:hidden;transition:transform .5s var(--ease-out),box-shadow .5s}.submit-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--accent)}.submit-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -28px #0006}.submit-no{font-family:var(--f-display);font-stretch:115%;font-size:clamp(3rem,6vw,4.6rem);font-weight:900;line-height:1;letter-spacing:-.04em}.submit-body{display:grid;gap:4px}.submit-body strong{font-family:var(--f-display);font-size:1.45rem}.submit-body span{color:var(--ink-2)}@media (max-width: 680px){.submit-card{grid-template-columns:1fr;gap:12px;padding:24px}}.generations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 56px}.generation h2{display:flex;justify-content:space-between;align-items:baseline;font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:800;padding-bottom:12px;border-bottom:3px solid var(--accent);margin-bottom:8px}.generation h2 .mono{font-size:.8rem;color:var(--muted)}.generation ol{margin:0;padding-left:1.8em}.generation li{padding:9px 0;border-bottom:1px solid var(--line)}.generation li::marker{font-family:var(--f-mono);font-size:.8rem;color:var(--muted)}.gen-name{font-weight:600}.gen-work{display:block;font-size:.9rem;color:var(--ink-2)}@media (max-width: 760px){.generations{grid-template-columns:1fr}}.guests{list-style:none;padding:0;margin:0;display:grid;gap:0;border-top:2px solid var(--ink)}.guests li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:4px 24px;padding:18px 0;border-bottom:1px solid var(--line)}.guests span{color:var(--ink-2)}@media (max-width: 640px){.guests li{grid-template-columns:1fr}}.books{display:grid;gap:clamp(64px,10vw,128px)}.book{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(32px,6vw,80px);align-items:center}.book.is-flip .book-cover{order:2}.book-cover{perspective:1200px;display:block}.book-cover img{width:100%;box-shadow:0 34px 60px -30px #0000008c;transform:rotateY(-8deg) rotateX(2deg);transition:transform .8s var(--ease-out)}.book.is-flip .book-cover img{transform:rotateY(8deg) rotateX(2deg)}.book-cover:hover img{transform:none}.book-body h2{font-size:clamp(1.6rem,3.4vw,2.6rem);font-weight:800;margin:16px 0 18px}.book-body p{color:var(--ink-2);max-width:62ch}.book-body .btn{margin-top:14px}@media (max-width: 760px){.book{grid-template-columns:1fr}.book.is-flip .book-cover{order:0}.book-cover{max-width:320px}}.notfound{position:relative;overflow:hidden;min-height:92svh;display:flex;align-items:center;background:var(--chrome);color:var(--chrome-ink);padding-block:calc(var(--header-h) + 40px) 64px}.notfound h1{font-size:clamp(3rem,10vw,8rem);font-weight:900;font-stretch:112%;margin:12px 0}.notfound p{color:#b8c1c4}.notfound .mono{color:var(--hl-cyan)}.notfound-mark{position:absolute;right:-10%;bottom:-10%;width:min(80vw,760px);opacity:.25}.notfound-mark path{stroke:var(--hl-cyan);stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s var(--ease-io) forwards}.site-footer{position:relative;background:var(--chrome);color:#c3cbce;font-size:.92rem;padding-block:clamp(72px,9vw,112px) calc(32px + env(safe-area-inset-bottom,0px));margin-top:40px}.footer-wave{position:absolute;left:0;right:0;top:-39px;width:100%;height:40px}.footer-wave path{fill:var(--chrome)}.footer-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.4fr);gap:48px;align-items:start}.footer-mark{width:120px;height:auto;display:block;margin-bottom:22px}.footer-mark path{stroke:var(--chrome-ink);stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1}.footer-brand.in .footer-mark path{animation:draw 2s var(--ease-io) forwards}.footer-slogan{margin:0;font-family:var(--f-display);font-stretch:110%;font-weight:700;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.15;color:var(--chrome-ink)}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;align-content:start}.footer-links a{text-decoration:none;padding:4px 0;transition:color .3s,transform .4s var(--ease-out);width:fit-content}.footer-links a:hover{color:var(--hl-cyan);transform:translate(4px)}.footer-info strong{color:var(--chrome-ink);display:block;margin-bottom:8px;font-family:var(--f-display)}.footer-info p{margin:0 0 6px}.email{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px!important}.email-addr{color:var(--hl-cyan);text-decoration:none;font-family:var(--f-mono)}.copy-btn{background:transparent;color:var(--chrome-ink);border:1px solid #3a4246;border-radius:99px;padding:3px 12px;font-size:.78rem}.copy-btn:hover{border-color:var(--hl-cyan);color:var(--hl-cyan)}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:64px;padding-top:28px;border-top:1px solid #1f2528}.footer-logos{display:flex;gap:12px;align-items:center}.footer-logos img{height:52px;width:auto;background:#fff;padding:6px}.footer-copy{margin:0;font-family:var(--f-mono);font-size:.78rem;color:var(--chrome-2)}.to-top{background:none;border:1px solid #3a4246;color:var(--chrome-ink);padding:8px 16px;border-radius:99px;font-size:.82rem;transition:border-color .3s,color .3s}.to-top:hover{border-color:var(--hl-cyan);color:var(--hl-cyan)}@media (max-width: 860px){.footer-top{grid-template-columns:1fr;gap:36px}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#000000f2;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);animation:page-in .35s var(--ease-out);color:#fff}.lb-top{display:flex;justify-content:space-between;align-items:center;padding:14px var(--gutter-r) 14px var(--gutter-l)}.lb-count{font-family:var(--f-mono);font-size:.85rem;letter-spacing:.1em}.lb-close{position:relative;width:44px;height:44px;background:none;border:1px solid #333;border-radius:50%;transition:border-color .3s,transform .5s var(--ease-out)}.lb-close:hover{border-color:#fff;transform:rotate(90deg)}.lb-close span{position:absolute;left:12px;right:12px;top:21px;height:1.5px;background:#fff;transform:rotate(45deg)}.lb-close span+span{transform:rotate(-45deg)}.lb-stage{position:relative;display:grid;place-items:center;min-height:0;padding:0 72px;touch-action:pan-y}.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;opacity:0;transform:scale(.98);transition:opacity .4s,transform .5s var(--ease-out)}.lb-stage img.is-loaded{opacity:1;transform:none}.lb-spin{position:absolute;width:36px;height:36px;border:2px solid #333;border-top-color:var(--hl-cyan);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lb-nav{position:absolute;top:50%;width:52px;height:52px;margin-top:-26px;background:#ffffff0f;border:1px solid #333;border-radius:50%;color:#fff;font-size:1.2rem;transition:background .3s,border-color .3s}.lb-nav:hover{background:var(--hl-cyan);border-color:var(--hl-cyan);color:#000}.lb-prev{left:calc(12px + env(safe-area-inset-left,0px))}.lb-next{right:calc(12px + env(safe-area-inset-right,0px))}.lb-strip{display:flex;gap:6px;overflow-x:auto;padding:12px var(--gutter-r) 16px var(--gutter-l);scrollbar-width:none}.lb-strip::-webkit-scrollbar{display:none}.lb-strip button{flex:none;width:64px;height:48px;padding:0;border:2px solid transparent;background:#111;opacity:.45;transition:opacity .3s,border-color .3s}.lb-strip button.on{opacity:1;border-color:var(--hl-cyan)}.lb-strip button:hover{opacity:.9}.lb-strip img{width:100%;height:100%;object-fit:cover}@media (max-width: 640px){.lb-stage{padding:0 8px}.lb-nav{display:none}}.route-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;background:#f3f3f0e0;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}.route-loader.on{opacity:1;visibility:visible;transition:opacity .25s}.rl-mark{position:relative;width:64px}.rl-outline{width:100%;height:auto;display:block}.rl-outline path{stroke:#121212;stroke-width:1.6;vector-effect:non-scaling-stroke}.rl-fill{position:absolute;top:0;right:0;bottom:0;left:0;color:#121212;clip-path:inset(100% 0 0 0)}.route-loader.on .rl-fill{animation:rl-rise 1.4s var(--ease-io) infinite}.rl-fill .logo{width:100%;height:auto;display:block}@keyframes rl-rise{0%{clip-path:inset(100% 0 0 0)}55%{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 100% 0)}}.admin-loading{min-height:100vh;display:grid;place-items:center;background:var(--chrome);color:var(--chrome-ink);font-family:var(--f-mono)}.gauge{position:fixed;right:max(10px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;color:#121212;padding:12px 14px 10px 8px;background:#f3f3f0e6;border:1px solid #121212}.gauge-staff{position:relative;width:6px;height:150px;border:1px solid currentColor;background:#fff}.gauge-water{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--teal);transform-origin:bottom;transform:scaleY(0)}.gauge-tick{position:absolute;left:100%;width:4px;height:1px;background:currentColor;font-family:var(--f-mono);font-size:8px;line-height:0;text-indent:7px}.gauge-tick.major{width:7px}.gauge-label{font-family:var(--f-mono);font-size:9px;font-weight:600;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.08em}@media (max-width: 960px){.gauge{display:none}}.edit-fab{position:fixed;z-index:45;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));display:grid;gap:2px;padding:12px 18px;border-radius:99px;background:var(--teal);color:#fff;font-weight:700;text-decoration:none;box-shadow:0 12px 30px #0000004d;animation:rise .6s var(--ease-out) both}.edit-fab:hover{background:var(--ink);color:var(--paper)}.edit-fab.is-dirty{background:#b45309;border-radius:14px}.edit-fab small{font-weight:400;font-size:.75rem}.site-header.is-open{backdrop-filter:none;-webkit-backdrop-filter:none;background:transparent;border-bottom-color:transparent}html.is-preview [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}html.is-preview .gauge,html.is-preview .edit-fab,html.is-preview .route-loader{display:none!important}html.is-preview{scroll-behavior:smooth}.pv-overlay{position:fixed;z-index:500;pointer-events:none;display:none;outline:3px solid #1e6c93;outline-offset:-3px;background:#1e6c9312;transition:top .25s,left .25s,width .25s,height .25s}.pv-overlay:before{content:attr(data-label);position:absolute;left:0;top:0;padding:4px 10px;background:#1e6c93;color:#fff;font:600 13px/1.4 IBM Plex Sans Thai,system-ui,sans-serif;white-space:nowrap}.pv-overlay[data-label=""]:before{display:none}html.is-preview .hero{min-height:min(100svh,820px)}html.is-preview .thesis-hero{min-height:min(82svh,680px)}html.is-preview .notfound{min-height:min(92svh,760px)}
