@property --accent{syntax:"<color>";inherits:true;initial-value:#8266ff}@property --accent-soft{syntax:"<color>";inherits:true;initial-value:#ac99ff}@property --accent-strong{syntax:"<color>";inherits:true;initial-value:#c2b4ff}@property --on-accent{syntax:"<color>";inherits:true;initial-value:#120d2b}@property --on-selection{syntax:"<color>";inherits:true;initial-value:#fff}@property --title-icon{syntax:"<color>";inherits:true;initial-value:#00cc96}@property --surface{syntax:"<color>";inherits:true;initial-value:#221f29}@property --surface-hover{syntax:"<color>";inherits:true;initial-value:#2e2a37}@property --card-edge{syntax:"<color>";inherits:true;initial-value:#ac99ff24}@property --accent-ring{syntax:"<color>";inherits:true;initial-value:#ac99ff1f}@property --glow{syntax:"<color>";inherits:true;initial-value:#8266ff2e}@property --card-mid{syntax:"<color>";inherits:true;initial-value:#121115}@property --card-end{syntax:"<color>";inherits:true;initial-value:#14131a}@property --media-top{syntax:"<color>";inherits:true;initial-value:#3f3a52}@property --media-mid{syntax:"<color>";inherits:true;initial-value:#211f29}@property --media-end{syntax:"<color>";inherits:true;initial-value:#131217}:root{--bg:#080808;--card:#1c1c1c;--surface:#221f29;--surface-hover:#2e2a37;--line:#ffffff14;--tile:#ffffff09;--text:#f2f2f2;--muted:#b3b3b3;--dim:#8f8f8f;--accent:#8266ff;--accent-soft:#ac99ff;--accent-strong:var(--accent-strong);--on-accent:#120d2b;--on-selection:#fff;--green:#00cc96;--title-icon:var(--green);--grid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cpath d='M0 .5H64M.5 0V64' stroke='%23fff' stroke-opacity='.035'/%3E%3C/svg%3E");--grid-ticks:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cpath d='M0 .5H5M59 .5H64M.5 0V5M.5 59V64' stroke='%23000'/%3E%3C/svg%3E");--card-edge:#ac99ff24;--accent-ring:#ac99ff1f;--glow:#8266ff2e;--card-mid:#121115;--card-end:#14131a;--media-top:#3f3a52;--media-mid:#211f29;--media-end:#131217;--noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--radius:30px;--radius-sm:12px;--gap:24px;--pad:24px;--max:800px;--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-section=stack]{--accent:#4d8dff;--accent-soft:#8ab8ff;--accent-strong:#b3d1ff;--title-icon:var(--accent-soft);--on-accent:#0a1a33;--on-selection:#fff;--surface:#1c2029;--surface-hover:#272d39;--card-edge:#8ab8ff24;--accent-ring:#8ab8ff1f;--glow:#4d8dff2e;--card-mid:#111318;--card-end:#13161c;--media-top:#363f55;--media-mid:#1e2229;--media-end:#121418}:root[data-section=projects]{--accent:#1fbf7a;--accent-soft:#5fe0a6;--accent-strong:#8fecc2;--title-icon:var(--accent-soft);--on-accent:#07291a;--on-selection:#07291a;--surface:#1c2420;--surface-hover:#27312c;--card-edge:#5fe0a624;--accent-ring:#5fe0a61f;--glow:#1fbf7a2e;--card-mid:#111512;--card-end:#131915;--media-top:#334a40;--media-mid:#1c2621;--media-end:#111613}:root[data-section=contact]{--accent:#e6b800;--accent-soft:#ffd84d;--accent-strong:#ffe580;--title-icon:var(--accent-soft);--on-accent:#2b2200;--on-selection:#2b2200;--surface:#25231b;--surface-hover:#322f24;--card-edge:#ffd84d24;--accent-ring:#ffd84d1f;--glow:#e6b8001f;--card-mid:#141310;--card-end:#191712;--media-top:#4a4530;--media-mid:#27241a;--media-end:#161510}:root{transition:--accent .5s,--accent-soft .5s,--accent-strong .5s,--on-accent .5s,--on-selection .5s,--title-icon .5s,--surface .5s,--surface-hover .5s,--card-edge .5s,--accent-ring .5s,--glow .5s,--card-mid .5s,--card-end .5s,--media-top .5s,--media-mid .5s,--media-end .5s}@media (prefers-reduced-motion:reduce){:root{transition:none}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);background-image:var(--grid);color:var(--text);-webkit-font-smoothing:antialiased;background-position:top;background-attachment:fixed;margin:0;font-family:Bai Jamjuree,system-ui,sans-serif;font-size:16px;line-height:1.55}body:before{content:"";z-index:-1;pointer-events:none;background:var(--accent-soft);opacity:.22;-webkit-mask:var(--grid-ticks) center top;-webkit-mask:var(--grid-ticks) center top;mask:var(--grid-ticks) center top;position:fixed;inset:0}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}::selection{background:var(--accent);color:var(--on-selection)}.page{width:min(var(--max), 100% - 32px);gap:var(--gap);flex-direction:column;margin:0 auto;padding:24px 0 120px;display:flex}.card{isolation:isolate;background:var(--noise), linear-gradient(180deg, #131313 0%, var(--card-mid) 60%, var(--card-end) 100%);border-radius:var(--radius);padding:var(--pad);border:1px solid var(--card-edge);flex-direction:column;gap:20px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 24px 48px -24px #000c}.card:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(260px 180px at 100% 0%, var(--glow), transparent 70%);position:absolute;inset:0}.card--flush{padding:var(--pad)}.card__title{letter-spacing:-.01em;align-items:center;gap:10px;font-size:1.6rem;font-weight:500;display:flex}.card__icon{color:var(--title-icon);flex:none;font-size:1.15rem}.split{gap:var(--gap);grid-template-columns:1fr 1fr;display:grid}.page-title{letter-spacing:-.015em;font-size:clamp(1.9rem,4.6vw,2.5rem);font-weight:500;line-height:1.15}.lead,.prose p{color:var(--muted);font-size:1.02rem}.prose{flex-direction:column;gap:1em;display:flex}.prose h3{color:var(--text);font-size:1.05rem;font-weight:500}.prose h3:not(:first-child){margin-top:.75em}.prose h3+p{margin-top:-.5em}.hero{padding:32px var(--pad) var(--pad)}.reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.wide-btn{border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:46px;color:var(--accent-soft);justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.95rem;font-weight:500;transition:background .25s,color .25s;display:flex}.wide-btn svg{transition:transform .25s var(--ease)}.wide-btn:hover{background:var(--surface-hover);color:#fff}.wide-btn:hover svg{transform:translate(3px)}.wide-btn--solid{background:var(--accent-soft);color:var(--on-accent)}.wide-btn--solid:hover{background:var(--accent-strong);color:var(--on-accent)}.icon-btn{background:var(--surface);width:42px;height:42px;color:var(--text);cursor:pointer;transition:background .25s, color .25s, transform .25s var(--ease);border:0;border-radius:12px;place-items:center;font-size:1.05rem;display:grid}.icon-btn:hover{background:var(--surface-hover);color:var(--accent-soft);transform:translateY(-2px)}.icon-btn--lang{letter-spacing:.04em;font-size:.78rem;font-weight:600}.topbar{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px 10px 10px}.topbar__id{align-items:center;gap:12px;min-width:0;display:flex}.topbar__avatar{object-fit:cover;border-radius:18px;flex:none;width:56px;height:56px}.topbar__name{color:var(--accent-soft);font-size:1.3rem;font-weight:500;line-height:1.2;display:block}.topbar__role{color:var(--muted);font-size:.88rem;display:block}.status-pill{border:1px solid var(--green);white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:5px 12px;font-size:.85rem;display:inline-flex}.status-pill__dot{background:var(--green);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse;box-shadow:0 0 #00cc9699}@keyframes pulse{70%{box-shadow:0 0 0 7px #00cc9600}to{box-shadow:0 0 #00cc9600}}.topbar__actions{gap:8px;display:flex}.card--globe{gap:8px;padding-bottom:0}.globe{width:100%;height:250px;margin-bottom:-2px}.card--skills{padding-left:0;padding-right:0}.card--skills .card__title{padding:0 var(--pad)}.marquee{flex-direction:column;flex:1;justify-content:center;gap:12px;display:flex;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.marquee__row{width:max-content;animation:38s linear infinite marquee;display:flex}.marquee__row--reverse{animation-duration:44s;animation-direction:reverse}.marquee:hover .marquee__row{animation-play-state:paused}.marquee__track{flex:none;display:flex}.marquee__item{align-items:center;gap:12px;padding-right:12px;display:inline-flex}.marquee__spark{color:var(--accent-soft);font-size:.9rem}.chip{background:var(--surface);white-space:nowrap;border-radius:8px;padding:6px 12px;font-size:.95rem}@keyframes marquee{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.marquee__row{animation:none}}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.project{border-bottom:1px solid var(--card-edge);flex-direction:column;gap:12px;padding:24px 20px;display:flex}.project:nth-child(odd){border-right:1px solid var(--card-edge);padding-left:0}.project:nth-child(2n){padding-right:0}.project:nth-child(-n+2){padding-top:0}.project:last-child,.project:nth-last-child(2):nth-child(odd){border-bottom:none;padding-bottom:0}.project__media{aspect-ratio:16/10;background:var(--noise), radial-gradient(120% 90% at 50% 0%, var(--media-top) 0%, var(--media-mid) 55%, var(--media-end) 100%);border:1px solid var(--card-edge);border-radius:16px;overflow:hidden}.project__media img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .6s var(--ease)}.project:hover .project__media img{transform:scale(1.04)}.project__title{font-size:1.05rem;font-weight:400;line-height:1.35;transition:color .25s}.project:hover .project__title{color:var(--accent-soft)}.tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tag{background:var(--surface);color:var(--muted);border-radius:6px;padding:2px 8px;font-size:.78rem}.tag--accent{color:var(--accent-soft)}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tabs__btn{background:var(--surface);color:var(--muted);cursor:pointer;border:0;border-radius:10px;padding:8px 16px;transition:background .25s,color .25s}.tabs__btn:hover{color:var(--text)}.tabs__btn.is-active{background:var(--accent-soft);color:var(--on-accent)}.back-link{color:var(--accent-soft);align-self:flex-start;align-items:center;gap:6px;font-size:.92rem;display:inline-flex}.back-link:hover{color:#fff}.detail__media{background:var(--surface);border-radius:18px;overflow:hidden}.detail__media img{object-fit:cover;width:100%;max-height:520px}.diagram{flex-direction:column;gap:12px;margin:0;display:flex}.diagram__frame{border:1px solid var(--line);background:#0a0d18;border-radius:18px;width:100%;min-height:300px;display:block}.diagram__caption{color:var(--dim);font-size:.9rem}.diagram__caption a{color:var(--accent-soft);align-items:center;gap:4px;display:inline-flex}.prose .stack-grid{margin-top:4px}.detail__actions{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.tools{flex-direction:column;gap:28px;margin:0;padding:0;list-style:none;display:flex}.tool{grid-template-columns:64px 1fr;gap:16px;display:grid;position:relative}.tool:not(:last-child):before{content:"";background:var(--surface);width:1px;position:absolute;top:72px;bottom:-20px;left:32px}.tool__icon{background:var(--surface);width:64px;height:64px;color:var(--accent-soft);border-radius:20px;place-items:center;font-size:28px;display:grid}.tool__name{margin-top:8px;font-size:1.05rem;font-weight:500}.tool__tag{color:var(--dim);font-size:.85rem}.tool__desc{color:var(--muted);margin-top:14px}.timeline{flex-direction:column;gap:6px;margin:0;padding:0 0 0 4px;list-style:none;display:flex}.timeline__item{position:relative}.timeline__item:not(:last-child):before{content:"";background:var(--surface);width:1px;position:absolute;top:34px;bottom:-14px;left:15px}.timeline__head{text-align:left;background:0 0;border:0;grid-template-columns:32px 1fr auto;align-items:start;gap:12px;width:100%;padding:8px 0;display:grid}button.timeline__head{cursor:pointer}.timeline__dot{background:var(--accent-soft);width:7px;height:7px;box-shadow:0 0 0 4px var(--accent-ring);border-radius:50%;justify-self:center;margin-top:9px}.timeline__title{font-size:1.05rem;display:block}.timeline__meta{color:var(--dim);font-size:.88rem;display:block}.timeline__toggle{color:var(--muted);transition:transform .35s var(--ease), color .25s;margin-top:4px}button.timeline__head:hover .timeline__title,.timeline__item.is-open .timeline__toggle{color:var(--accent-soft)}.timeline__item.is-open .timeline__toggle{transform:rotate(45deg)}.timeline__details{transition:grid-template-rows .4s var(--ease);grid-template-rows:0fr;display:grid}.timeline__item.is-open .timeline__details{grid-template-rows:1fr}.timeline__details-inner{overflow:hidden}.timeline__details ul{color:var(--muted);flex-direction:column;gap:8px;margin:0;padding:4px 0 12px 44px;font-size:.95rem;list-style:none;display:flex}.timeline__details li{position:relative}.timeline__details li:before{content:"";background:var(--accent-soft);width:6px;height:1px;position:absolute;top:.75em;left:-14px}.stack-cards{gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stack-cards>:last-child:nth-child(odd){grid-column:1/-1}.stack-cards>:last-child:nth-child(odd) .stack-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;margin:0;padding:0;list-style:none;display:grid}.stack-tile{min-width:0;transition:transform .25s var(--ease);align-items:center;gap:10px;display:flex}.stack-tile:hover{transform:translateY(-2px)}.stack-tile__icon{flex:none;place-items:center;width:32px;height:32px;display:grid}.stack-tile__icon img{object-fit:contain;width:28px;height:28px}.stack-tile__name{line-height:1.25;display:block}.stack-tile__level{color:var(--dim);font-size:.8rem;display:block}.level--advanced,.level--experienced{color:var(--accent-soft)}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.contact-link{border-radius:var(--radius-sm);background:var(--surface);overflow-wrap:anywhere;align-items:center;gap:10px;min-height:46px;padding:10px 14px;transition:background .25s,color .25s;display:flex}.contact-link svg{color:var(--muted);flex:none}a.contact-link:hover{background:var(--surface-hover);color:var(--accent-soft)}.contact-link--static{color:var(--muted)}.form{flex-direction:column;gap:12px;display:flex}.form__row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field input,.field textarea{border-radius:var(--radius-sm);background:var(--surface);resize:vertical;border:1px solid #0000;width:100%;padding:12px 14px;transition:border-color .25s}.field input::placeholder,.field textarea::placeholder{color:var(--dim)}.field input:focus,.field textarea:focus{border-color:var(--accent-soft);outline:none}.submit-btn{border-radius:var(--radius-sm);background:var(--accent-soft);min-height:50px;color:var(--on-accent);cursor:pointer;border:0;font-weight:600;transition:background .25s}.submit-btn:hover{background:var(--accent-strong)}.form__hint{color:var(--dim);font-size:.85rem}.form__hint a{color:var(--accent-soft)}.lets-talk{padding:18px var(--pad) 24px;position:relative}.lets-talk__text{letter-spacing:-.01em;white-space:nowrap;transition:color .4s var(--ease);font-size:clamp(3.6rem,18vw,10.6rem);font-weight:500;line-height:1.05}.lets-talk__arrow{color:var(--accent-soft);opacity:0;transition:opacity .35s, transform .35s var(--ease);font-size:1.8rem;position:absolute;top:24px;right:24px;transform:translate(-8px,8px)}.lets-talk:hover .lets-talk__text{color:var(--accent-soft)}.lets-talk:hover .lets-talk__arrow{opacity:1;transform:none}.footer{color:var(--muted);gap:14px;font-size:.9rem}.footer__row{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.footer a{color:var(--text);text-underline-offset:3px;text-decoration:underline}.footer a:hover{color:var(--accent-soft)}.footer__links{flex-wrap:wrap;gap:8px 24px;display:flex}.dock{z-index:50;-webkit-backdrop-filter:blur(14px);background:#262626b8;border-radius:22px;gap:8px;padding:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000073}.dock__item{width:48px;height:48px;color:var(--text);transition:background .25s, color .25s, transform .25s var(--ease);background:#141414;border-radius:14px;place-items:center;font-size:1.2rem;display:grid;position:relative}.dock__item:hover{color:var(--accent-soft);transform:translateY(-3px)}.dock__item.is-active{background:#303030}.dock__item.is-active:after{content:"";background:var(--accent-soft);border-radius:2px;width:10px;height:2px;position:absolute;bottom:7px}.dock__tip{background:var(--surface);white-space:nowrap;pointer-events:none;opacity:0;border-radius:8px;padding:4px 10px;font-size:.78rem;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + 12px);transform:translateY(4px)}.dock__item:hover .dock__tip,.dock__item:focus-visible .dock__tip{opacity:1;transform:none}@media (width<=760px){.status-pill{display:none}}@media (width<=640px){:root{--pad:18px;--radius:24px;--gap:16px}.page{padding-top:16px}.split,.stack-cards,.contact-grid,.form__row{grid-template-columns:1fr}.stack-cards>:last-child:nth-child(odd) .stack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid{grid-template-columns:1fr}.project,.project:nth-child(n){border-right:none;border-bottom:1px solid var(--card-edge);padding:20px 0}.project:first-child{padding-top:0}.project:last-child{border-bottom:none;padding-bottom:0}.topbar{flex-wrap:wrap;padding:10px}.topbar__avatar{border-radius:14px;width:48px;height:48px}.topbar__actions{gap:6px}.icon-btn{width:38px;height:38px}.card__title{font-size:1.35rem}.card--skills{min-height:220px}.tool{grid-template-columns:52px 1fr}.tool__icon{border-radius:16px;width:52px;height:52px}.tool:not(:last-child):before{top:60px;left:26px}.tool__desc{margin-top:10px}.dock{border-radius:20px;gap:6px;padding:6px;bottom:12px}.dock__item{width:46px;height:46px}}
