@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/space-mono-vietnamese-700-normal.3xud57x_8l179.woff2)format("woff2"),url(../media/space-mono-vietnamese-700-normal.3o6ea44bhm3dv.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/space-mono-latin-ext-700-normal.17pys186sbj_8.woff2)format("woff2"),url(../media/space-mono-latin-ext-700-normal.3mwq6pb4n60ps.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(../media/space-mono-latin-700-normal.0qxx9j2s0-ll9.woff2)format("woff2"),url(../media/space-mono-latin-700-normal.3wsevs2--zt5l.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#07090f;--surface:#ffffff0a;--surface-hover:#ffffff14;--border:#ffffff1a;--border-hover:#d4af3780;--text:#eeeee9;--muted:#8791a0;--accent:#d4af37;--accent-soft:#d4af371f;--accent-glow:#d4af3740;--star:#c8d4e8;--sans:"Outfit", "IBM Plex Sans Thai", system-ui, sans-serif;--mono:"Space Mono", "IBM Plex Sans Thai", ui-monospace, monospace;--spring:cubic-bezier(.34, 1.56, .64, 1);--pad:clamp(20px, 6vw, 96px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.6;overflow-x:clip}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.skip{position:absolute;left:-999px}.skip:focus{z-index:200;color:#000;background:#fff;padding:8px 12px;top:12px;left:12px}#gl{z-index:0;width:100%;height:100%;display:block;position:fixed;inset:0}.vignette{z-index:1;pointer-events:none;background:radial-gradient(#0000 50%,#040509cc 100%);position:fixed;inset:0}.curtain{z-index:100;background:var(--bg);pointer-events:none;animation:.8s .35s forwards curtain;position:fixed;inset:0}@keyframes curtain{to{opacity:0;visibility:hidden}}.site-nav{z-index:30;background:#07090fdb;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:18px;padding:16px clamp(16px,4vw,44px);display:flex;position:fixed;top:0;left:0;right:0}.brand{letter-spacing:-.03em;font-size:1.35rem;font-weight:700}.dot{color:var(--accent)}.brand-img{object-fit:contain;width:auto;max-width:200px;height:34px;display:block}.site-nav ul{gap:clamp(6px,1.4vw,18px);list-style:none;display:flex}.site-nav ul a{color:var(--muted);border-radius:8px;padding:7px 14px;font-size:.9rem;transition:color .25s,background .25s;position:relative}.site-nav ul a:hover{color:var(--text);background:var(--surface-hover)}.site-nav ul a.on{color:var(--accent);background:var(--accent-soft);font-weight:500}.site-nav ul a.on:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:2px;left:14px;right:14px}.lang{font-family:var(--mono);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:.75rem;transition:border-color .2s,color .2s}.lang:hover{border-color:var(--accent);color:var(--accent)}.nav-now,.nav-burger,.mobile-menu,.mobile-menu[hidden]{display:none}@media (max-width:800px){.site-nav{border:1px solid var(--border);background:#07090fe6;border-radius:24px;flex-wrap:nowrap;gap:10px;padding:8px 8px 8px 16px;top:10px;left:10px;right:10px}.site-nav>nav{display:none}.brand{flex:none;order:0;font-size:1.3rem}.brand-img{max-width:120px;height:28px}.nav-now{flex:1;order:1;justify-content:center;min-width:0;margin:0;display:flex}.now-text{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;font-size:.72rem;animation:.35s nowIn;display:inline-flex;overflow:hidden}.now-text i{background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}:lang(th) .now-text{letter-spacing:.03em;text-transform:none;font-size:.82rem}.lang{border-radius:50%;flex:none;order:2;place-items:center;width:42px;height:42px;padding:0;font-size:.68rem;display:grid}.nav-burger{border:1px solid var(--border);width:42px;height:42px;color:var(--text);cursor:pointer;background:#ffffff0d;border-radius:50%;flex:none;order:3;place-items:center;margin:0;padding:0;display:grid}.nav-burger:hover{border-color:var(--border-hover)}.bars{width:20px;height:14px;display:block;position:relative}.bars b{background:currentColor;border-radius:2px;height:2px;transition:transform .25s,opacity .2s,top .25s;position:absolute;left:0;right:0}.bars b:first-child{top:0}.bars b:nth-child(2){top:6px}.bars b:nth-child(3){top:12px}.bars.open b:first-child{top:6px;transform:rotate(45deg)}.bars.open b:nth-child(2){opacity:0}.bars.open b:nth-child(3){top:6px;transform:rotate(-45deg)}.mobile-menu{border:1px solid var(--border);background:#090b12f7;border-radius:22px;padding:8px;animation:.22s menuIn;display:block;position:absolute;top:calc(100% + 8px);left:0;right:0;box-shadow:0 24px 60px -20px #000c}.mobile-menu[hidden]{display:none}.site-nav .mobile-menu ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.site-nav .mobile-menu a{color:var(--text);background:0 0;border-radius:14px;align-items:baseline;gap:14px;padding:14px 16px;font-size:1.25rem;font-weight:500;display:flex}.site-nav .mobile-menu a .n{font-family:var(--mono);color:var(--muted);min-width:22px;font-size:.72rem}.site-nav .mobile-menu a.on{background:var(--accent-soft);color:var(--accent)}.site-nav .mobile-menu a.on .n{color:var(--accent)}.site-nav .mobile-menu a:hover{background:var(--surface-hover)}}@keyframes nowIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes menuIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.progress{z-index:30;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0}.progress i{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}main{z-index:2;position:relative}.mono-label{font-family:var(--mono);color:var(--accent);letter-spacing:.1em;margin-bottom:14px;font-size:.8rem}:lang(th) .mono-label,:lang(th) .scroll-hint,:lang(th) .warp-sub{letter-spacing:.03em}.section-title{letter-spacing:-.03em;font-size:clamp(2rem,4.5vw,3.5rem);font-weight:700;line-height:1.1}:lang(th) .section-title,:lang(th) .hero-title,:lang(th) .contact-heading{letter-spacing:0;line-height:1.3}.section-desc{color:var(--muted);max-width:52ch;margin-top:.75rem;font-size:1.05rem}.gold{color:var(--accent);font-style:normal}.section{min-height:140svh;padding:clamp(96px, 24vh, 240px) var(--pad);align-items:center;display:grid}.inner{width:100%;max-width:1100px;margin:0 auto}#hero{min-height:100svh;padding:120px var(--pad) 90px;align-items:center;display:grid;position:relative}.hero-content{max-width:720px}.hero-kicker{font-family:var(--mono);color:var(--accent);letter-spacing:.1em;margin-bottom:1rem;font-size:1rem}:lang(th) .hero-kicker{letter-spacing:.02em}.hero-title{letter-spacing:-.04em;margin-bottom:1.5rem;font-size:clamp(4.2rem,13vw,10.5rem);font-weight:700;line-height:1}.sub{color:var(--muted);max-width:46ch;margin-bottom:2.5rem;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:300;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:14px;display:flex}.btn-primary,.btn-secondary{transition:transform .3s var(--spring), box-shadow .3s, border-color .3s;border-radius:10px;align-items:center;padding:.8rem 1.8rem;font-size:.92rem;display:inline-flex}.btn-primary{background:var(--accent);color:#07090f;font-weight:600}.btn-primary:hover{box-shadow:0 10px 30px var(--accent-glow);transform:translateY(-3px)}.btn-secondary{border:1px solid var(--border);background:#07090f66;font-weight:500}.btn-secondary:hover{border-color:var(--border-hover);transform:translateY(-3px)}.scroll-hint{bottom:34px;left:var(--pad);font-family:var(--mono);letter-spacing:.2em;color:var(--muted);align-items:center;gap:12px;font-size:.7rem;display:inline-flex;position:absolute}.scroll-hint i{background:var(--accent);transform-origin:0;width:34px;height:1px;animation:2s ease-in-out infinite hint}@keyframes hint{0%,to{transform:scaleX(.3)}50%{transform:scaleX(1)}}#warp{height:170vh}.sticky{text-align:center;place-items:center;height:100svh;display:grid;position:sticky;top:0;overflow:hidden}.warp-title{letter-spacing:-.04em;grid-area:1/1;font-size:clamp(3rem,12vw,10rem);font-weight:700;line-height:1}.warp-sub{font-family:var(--mono);letter-spacing:.3em;color:var(--accent);grid-area:1/1;align-self:end;margin-bottom:24vh;font-size:.8rem}.motion .warp-title,.motion .warp-sub{opacity:0}.about-text{max-width:520px}.about-bio{color:#c9cdd2;margin-top:1.4rem;font-size:clamp(1.1rem,1.8vw,1.3rem);font-weight:300;line-height:1.8}.skills{flex-wrap:wrap;gap:8px;margin-top:1.8rem;list-style:none;display:flex}.skill-tag{font-family:var(--mono);border:1px solid var(--border);color:var(--muted);background:#07090f8c;border-radius:6px;padding:.4rem .9rem;font-size:.75rem;transition:color .2s,border-color .2s}.skill-tag:hover{color:var(--accent);border-color:var(--border-hover)}.constellation{border:1px solid var(--border);background:#07090f59;border-radius:24px;height:clamp(380px,64vh,620px);margin-top:44px;position:relative;overflow:hidden}.constellation svg{width:100%;height:100%;position:absolute;inset:0}.constellation line{stroke:var(--star);stroke-opacity:.28;stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:3 5}.star-node{z-index:2;width:0;height:0;position:absolute}.star-center{width:44px;height:44px;transition:transform .3s var(--spring);place-items:center;display:grid;position:absolute;top:-22px;left:-22px}.star-core{background:var(--accent);width:10px;height:10px;box-shadow:0 0 12px 3px var(--accent-glow), 0 0 0 1px #ffffff40;transition:transform .3s var(--spring);border-radius:50%}.star-glow{background:radial-gradient(circle, var(--accent-glow), transparent 65%);border-radius:50%;animation:3.2s ease-in-out infinite pulse;position:absolute;inset:0}@keyframes pulse{0%,to{opacity:.6;transform:scale(.7)}50%{opacity:1;transform:scale(1.25)}}.star-label{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;border:1px solid var(--border);background:#07090fbf;border-radius:20px;max-width:44vw;padding:3px 11px;font-size:.78rem;font-weight:500;transition:color .3s,border-color .3s;position:absolute;top:22px;left:0;overflow:hidden;transform:translate(-50%)}.star-node:hover .star-center,.star-node:focus-visible .star-center{transform:scale(1.35)}.star-node:hover .star-label,.star-node:focus-visible .star-label{color:var(--accent);border-color:var(--accent)}.empty{color:var(--muted);font-family:var(--mono);margin-top:26px;font-size:.85rem}#interlude{height:170vh}#interlude .sticky{position:sticky}.interlude-core{font-family:var(--mono);letter-spacing:.3em;color:var(--accent);text-align:center;text-transform:uppercase;grid-area:1/1;align-self:end;margin:0 0 16vh;font-size:.85rem}:lang(th) .interlude-core{letter-spacing:.1em;text-transform:none;font-size:1rem}.motion .interlude-core{opacity:0}#interlude .marquee-row{color:#c8d4e813;-webkit-text-stroke:0}#interlude .marquee-row.outline{color:#d4af371c;-webkit-text-stroke:0}#row1{top:20vh}#row2{top:46vh}#journal,#links{position:relative}.marquee-row{white-space:nowrap;letter-spacing:-.03em;color:#0000;-webkit-text-stroke:1px #c8d4e821;pointer-events:none;will-change:transform;font-size:clamp(4rem,13vw,11rem);font-weight:700;line-height:1;position:absolute;top:6vh;left:0}.rows{gap:12px;margin-top:34px;list-style:none;display:grid}.rows a{border:1px solid var(--border);transition:transform .3s var(--spring), border-color .3s, background .3s;background:#0c0f1799;border-radius:16px;grid-template-columns:130px 1fr auto;align-items:center;gap:20px;padding:1.2rem 1.5rem;display:grid}.rows a:hover{border-color:var(--border-hover);background:#12151ebf;transform:translateY(-3px)}.rows .when{font-family:var(--mono);color:var(--muted);font-size:.72rem}.rows .what{overflow-wrap:anywhere;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:600;line-height:1.3}.rows .note{color:var(--muted);margin-top:2px;font-size:.92rem;font-weight:300;display:block}.rows .go{color:var(--muted);transition:color .3s,transform .3s}.rows a:hover .go{color:var(--accent);transform:translate(4px)}@media (max-width:640px){.rows a{grid-template-columns:1fr auto}.rows .when{grid-column:1/-1}}.more{font-family:var(--mono);color:var(--accent);gap:10px;margin-top:22px;font-size:.8rem;display:inline-flex}.more:after{content:"→";transition:transform .25s}.more:hover:after{transform:translate(6px)}.links-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:34px;display:grid}.link-card{border:1px solid var(--border);transition:transform .3s var(--spring), border-color .3s;background:#0c0f1799;border-radius:16px;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.link-card:hover{border-color:var(--border-hover);transform:translateY(-4px)}.link-card-icon{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:12px;flex:none;place-items:center;font-size:1.5rem;font-weight:700;display:grid}.link-card-body{flex:1;min-width:0}.link-card-body h3{font-size:1.05rem;font-weight:600}.link-card-body p{color:var(--muted);font-size:.88rem}.link-card-arrow{color:var(--muted);transition:transform .3s,color .3s}.link-card:hover .link-card-arrow{color:var(--accent);transform:translate(4px)}#contact{min-height:110svh}.contact-inner{width:100%;max-width:760px;margin:0 auto}.contact-heading{letter-spacing:-.04em;font-size:clamp(2.8rem,8vw,6.5rem);font-weight:700;line-height:1.05}.contact-sub{color:var(--muted);margin:1rem 0 .5rem;font-size:1.1rem}.foot{z-index:2;padding:0 var(--pad) 34px;font-family:var(--mono);color:var(--muted);font-size:.72rem;position:relative}.article{max-width:820px;padding:140px var(--pad) 110px;margin:0 auto}.article-panel{border:1px solid var(--border);background:#090b12e6;border-radius:24px;padding:clamp(24px,5vw,56px)}.article h1{letter-spacing:-.03em;overflow-wrap:anywhere;margin:12px 0 16px;font-size:clamp(2.2rem,6vw,4.2rem);font-weight:700;line-height:1.08}:lang(th) .article h1{letter-spacing:0;line-height:1.3}.kicker{font-family:var(--mono);color:var(--accent);letter-spacing:.08em;font-size:.8rem}.lead{color:var(--muted);font-size:1.15rem;font-weight:300}.article .cover{border-radius:14px;width:100%;height:auto;margin:30px 0 0;display:block}.actions{gap:20px;margin-top:26px;display:flex}.prose{color:#d5d8dc;margin-top:34px;font-size:1.08rem;font-weight:300}.prose>*+*{margin-top:1.1em}.prose h1,.prose h2,.prose h3{color:var(--text);letter-spacing:-.02em;margin-top:1.8em;font-weight:700;line-height:1.2}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.prose ul,.prose ol{padding-left:1.3em}.prose img{border-radius:12px;max-width:100%;height:auto}.prose code{font-family:var(--mono);background:var(--surface-hover);border-radius:6px;padding:2px 6px;font-size:.85em}.prose pre{background:#00000080;border-radius:12px;padding:18px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);padding-left:20px}.draft{background:var(--accent);color:#07090f;font-family:var(--mono);border-radius:6px;margin-bottom:18px;padding:3px 12px;font-size:.72rem;font-weight:700;display:inline-block}.motion [data-reveal]{opacity:0;transform:translateY(32px)}@media (max-width:800px){#hero{align-items:end;padding-bottom:120px}.about-text{border:1px solid var(--border);background:#07090f8c;border-radius:18px;padding:22px}}@media (prefers-reduced-motion:reduce){.curtain{display:none}.scroll-hint i,.star-glow,.now-text,.mobile-menu{animation:none}}
