.private-view{background:var(--bg);color:var(--text)}.gallery-container{width:min(100% - 96px, var(--maxw));margin-inline:auto}.private-view :where(h1,h2,h3){font-weight:500}.private-view :where(p,li,dd){overflow-wrap:anywhere}.private-view :where(a,button,summary){-webkit-tap-highlight-color:transparent}.private-view :focus-visible{outline:2px solid var(--accent);outline-offset:6px}.private-view[lang=th] :where(h1,h2,h3){letter-spacing:-.015em;line-height:1.5}.gallery-intro{background:var(--dark);color:var(--on-dark);padding-top:112px}.gallery-intro-heading{border-bottom:1px solid var(--dark-line);justify-content:space-between;align-items:baseline;gap:24px;padding-bottom:24px;display:flex}.gallery-intro h1{letter-spacing:-.025em;font-size:clamp(1.4rem,2.4vw,2rem)}.gallery-location{color:var(--on-dark-muted);font-size:.875rem}.gallery-opening{grid-template-columns:.85fr 1.15fr;align-items:center;gap:6%;padding-block:56px 64px;display:grid}.gallery-statement h2{letter-spacing:-.03em;font-size:clamp(2rem,3.2vw,3rem);line-height:1.2}.gallery-statement h2 span{color:var(--accent-on-dark)}.gallery-summary{color:var(--on-dark-muted);max-width:42ch;margin-top:24px;font-size:1rem;line-height:1.85}.gallery-button{background:var(--on-dark);min-height:48px;color:var(--dark);border-radius:var(--radius-control);justify-content:space-between;align-items:center;gap:28px;margin-top:28px;padding:13px 21px;font-size:.9rem;font-weight:600;display:inline-flex}.gallery-button:hover{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent)}.gallery-display{isolation:isolate;min-width:0;margin:0;position:relative}.gallery-display-link{display:block;position:relative}.gallery-display-main{aspect-ratio:16/10;background:var(--surface);border:1px solid var(--dark-line);border-radius:var(--radius-inset);width:100%;box-shadow:var(--shadow-on-dark);display:block;position:relative;overflow:hidden}.gallery-image-action{pointer-events:none;background:var(--dark);border:1px solid var(--dark-line);border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;bottom:14px;right:14px}.gallery-display figcaption{color:var(--on-dark-muted);justify-content:space-between;gap:24px;margin-top:14px;font-size:.8rem;line-height:1.7;display:flex}.showcase-layer{opacity:0;visibility:hidden;position:absolute;inset:0}.showcase-layer.is-active{opacity:1;visibility:visible;position:relative}.showcase-layer .gallery-display-main{display:block}.gallery-display{min-width:0}.showcase-controls{align-items:center;gap:16px;margin-top:20px;display:flex}.showcase-directions{flex-shrink:0;gap:12px;display:flex}.showcase-directions>button{border:1px solid var(--dark-line);width:44px;height:44px;color:var(--on-dark);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.showcase-directions>button:hover{border-color:var(--accent-on-dark)}.showcase-dots{flex:160px;align-items:center;gap:8px;display:flex}.showcase-dots button{cursor:pointer;flex:1 1 0;min-width:24px;height:44px;display:block}.showcase-progress{background:var(--dark-line);width:100%;height:2px;display:block}.showcase-dots button[aria-current=true] .showcase-progress{background:var(--dark-line)}.showcase-dots button[aria-current=true] .showcase-progress[data-running=true]{background:var(--accent-on-dark)}.gallery-display noscript ul{flex-wrap:wrap;gap:8px 20px;margin-top:16px;font-size:.85rem;list-style:none;display:flex}@media (max-width:760px){.showcase-controls{gap:8px;display:grid}.showcase-directions{justify-content:space-between}.showcase-dots{gap:4px;min-width:0}}.gallery-display figcaption span:last-child{text-align:right;max-width:65%}.gallery-display-empty{padding:60px 24px;font-size:2rem}.gallery-intro-foot{border-top:1px solid var(--dark-line);color:var(--on-dark-muted);justify-content:space-between;gap:24px;padding-block:18px;font-size:.85rem;display:flex}.gallery-intro-foot a{align-items:center;gap:12px;min-height:44px;display:inline-flex}.gallery-intro-foot a:hover{color:var(--on-dark)}.gallery-work{padding-block:var(--space-section);scroll-margin-top:88px}.gallery-section-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px;display:flex}.gallery-section-heading h2{letter-spacing:-.025em;font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1.25}.gallery-text-link{min-height:44px;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:6px;align-items:center;gap:12px;font-size:.9rem;font-weight:600;display:inline-flex}.gallery-text-link:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.gallery-project.selected-work-row{border:0;grid-template-columns:1.35fr 1fr;align-items:center;gap:6%;padding-block:0 48px}.gallery-project-image.selected-work-image{aspect-ratio:5/4;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:0}.gallery-project-image img{padding:6%}.gallery-project-open{background:var(--surface);border-radius:50%;padding:10px;position:absolute;bottom:18px;right:18px}.gallery-project-copy h3{letter-spacing:-.02em;font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1.35}.gallery-project-copy>p{color:var(--muted);margin-top:18px;font-size:1.02rem;line-height:1.8}.gallery-project-meta{gap:15px;margin-block:24px;font-size:.875rem;line-height:1.8;display:grid}.gallery-project-meta>div{grid-template-columns:105px 1fr;gap:12px;display:grid}.gallery-project-meta dt{color:var(--muted)}.gallery-project-copy>.gallery-project-focus{border-top:1px solid var(--line);margin-block:0 20px;padding-top:16px;font-size:.9rem}.gallery-project-focus span{color:var(--text);margin-bottom:6px;font-weight:600;display:block}.gallery-project-reverse .gallery-project-figure{order:2}.gallery-project-figure{min-width:0;margin:0}.gallery-project-figure a.gallery-project-image{display:block}.gallery-project-figure figcaption{color:var(--muted);max-width:65ch;margin-top:16px;font-size:.8rem;line-height:1.7}.gallery-project-copy>.project-story-question{color:var(--text);letter-spacing:-.025em;text-wrap:balance;margin:0 0 24px;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.35}.gallery-project-copy:has(.project-story-question) h3{font-size:1.05rem;line-height:1.65}.gallery-project:has(.engineering-story-wrap){row-gap:28px;padding-bottom:80px}.gallery-project>.engineering-story-wrap{order:3;grid-column:1/-1}.engineering-story-wrap{min-width:0;margin-bottom:40px}.engineering-story-wrap.is-compact{margin:0}.engineering-story-opening{grid-template-columns:1fr 1fr;align-items:start;gap:6%;margin-block:16px 32px;display:grid}.engineering-story-opening h2{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.4}.engineering-story-opening p,.engineering-story-copy{max-width:65ch;color:var(--muted);font-size:1rem;line-height:1.85}.engineering-story{border-block:1px solid var(--line)}.engineering-story summary{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:64px;padding-block:16px;font-size:.95rem;font-weight:600;list-style:none;display:flex}.engineering-story summary::-webkit-details-marker{display:none}.engineering-story summary svg{flex-shrink:0}.engineering-story summary:hover,.engineering-story[open] summary{color:var(--accent)}.engineering-story-body{padding-bottom:32px}.engineering-story-copy{margin-bottom:32px}.engineering-story-path{margin-block:24px 32px;position:relative}.engineering-story-signal{top:14px;left:15px;right:calc((100% - (var(--story-stage-count) - 1) * 32px) / var(--story-stage-count) - 15px);background:var(--accent);height:1px;position:absolute}.engineering-story-stages{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:32px;margin:0;padding:0;list-style:none;display:grid}.engineering-story-stages li{min-width:0;position:relative}.engineering-story-step{width:30px;height:30px;color:var(--accent);background:var(--bg);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;margin-bottom:24px;font-size:.8rem;display:grid;position:relative}.engineering-story-stages :is(h3,h4){margin-bottom:10px;font-size:1.05rem;font-weight:500;line-height:1.5}.engineering-story-stages p{color:var(--muted);font-size:.9rem;line-height:1.85}.engineering-story-artifact{border-top:1px solid var(--line);grid-template-columns:1.6fr 1fr;align-items:end;gap:32px;margin:0;padding-top:24px;display:grid}.engineering-story-artifact a{min-width:0;display:block;position:relative}.engineering-story-artifact img{width:100%;height:auto;display:block}.engineering-story-artifact a>svg{box-sizing:content-box;background:var(--surface);color:var(--text);padding:10px;position:absolute;bottom:12px;right:12px}.engineering-story-artifact figcaption{max-width:45ch;color:var(--muted);font-size:.85rem;line-height:1.85}.engineering-story-related{margin-top:24px}.project-gallery-caption{max-width:70ch;color:var(--muted);margin-block:12px 24px;font-size:.85rem;line-height:1.85}.project-image-links{flex-wrap:wrap;gap:8px 24px;margin-top:24px;display:flex}@media (max-width:760px){.engineering-story-opening,.engineering-story-artifact{grid-template-columns:1fr;gap:24px}.engineering-story-stages{grid-auto-columns:auto;grid-auto-flow:row;gap:28px}.engineering-story-stages li{padding-left:48px}.engineering-story-step{margin:0;position:absolute;top:0;left:0}.engineering-story-signal{display:none}.engineering-story-path:has(.engineering-story-signal) li:not(:last-child):before{content:"";background:var(--accent);width:1px;height:calc(100% + 28px);position:absolute;top:15px;left:14px}.gallery-project-reverse .gallery-project-figure{order:0}}.gallery-practice{background:var(--accent-soft);padding-block:var(--space-section);border-block:1px solid var(--accent-line)}.gallery-practice-layout{grid-template-columns:1fr 1fr;gap:12%;display:grid}.gallery-practice h2{letter-spacing:-.025em;font-size:clamp(1.75rem,3vw,2.75rem);line-height:1.25}.gallery-practice-layout>div>p{max-width:48ch;color:var(--muted);margin-block:26px 20px;font-size:1rem;line-height:1.9}.gallery-explore a{border-bottom:1px solid var(--line);padding-block:24px;display:block}.gallery-explore>div:first-child a{padding-top:0}.gallery-explore h3{justify-content:space-between;align-items:center;gap:20px;font-size:1.15rem;line-height:1.6;display:flex}.gallery-explore h3 svg{flex-shrink:0}.gallery-explore p{color:var(--muted);max-width:55ch;margin-top:10px;font-size:.95rem;line-height:1.9}.gallery-explore a:hover h3{color:var(--accent);text-underline-offset:6px;text-decoration:underline}.gallery-journal{padding-block:var(--space-section)}.gallery-note-list{grid-template-columns:1.2fr 1fr 1fr;gap:40px;display:grid}.gallery-note-list article{border-top:1px solid var(--line);height:100%}.gallery-note-list a{flex-direction:column;height:100%;padding-block:24px 12px;display:flex}.gallery-note-list h3{font-size:1.2rem;line-height:1.55}.gallery-note-list article:first-child h3{font-size:1.4rem;line-height:1.45}.gallery-note-list p{color:var(--muted);margin-block:14px 22px;font-size:1rem;line-height:1.8}.gallery-note-list a>span{align-items:center;gap:12px;min-height:44px;margin-top:auto;font-size:.875rem;font-weight:600;display:flex}.gallery-note-list a:hover h3{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:1px}.gallery-contact{background:var(--dark);color:var(--on-dark);padding-block:80px}.gallery-contact h2{letter-spacing:-.025em;font-size:clamp(1.75rem,3.2vw,2.75rem);line-height:1.25}.gallery-contact p{max-width:60ch;color:var(--on-dark-muted);margin-top:20px;font-size:1rem;line-height:1.85}.gallery-contact-email{border-bottom:1px solid var(--dark-line);overflow-wrap:anywhere;align-items:center;gap:20px;margin-top:32px;padding-bottom:14px;font-size:clamp(1rem,2.4vw,2rem);display:inline-flex}.gallery-contact-email:hover{border-bottom-color:var(--accent-on-dark)}.gallery-contact-email svg{flex-shrink:0}.gallery-contact-links{flex-wrap:wrap;gap:28px;margin-top:24px;font-size:.9rem;display:flex}.gallery-contact-links a{align-items:center;gap:8px;min-height:44px;display:inline-flex}.gallery-profile{color:var(--on-dark-muted);font-size:1.5rem;line-height:1.8}.gallery-index{min-height:80vh;padding-block:136px 80px}.gallery-index-heading{grid-template-columns:1.3fr 1fr;align-items:end;gap:64px;margin-bottom:64px;display:grid}.gallery-index-heading h1{letter-spacing:-.03em;font-size:clamp(1.9rem,3.5vw,3rem);line-height:1.2}.gallery-index-heading p{color:var(--muted);max-width:48ch;font-size:1rem;line-height:1.9}.gallery-project-collection{grid-template-columns:1fr 1fr;gap:40px;margin-bottom:60px;display:grid}.gallery-project-collection>div{height:100%}.gallery-project-collection>div:first-child{grid-column:1/-1}.gallery-collection-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);height:100%;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.gallery-collection-item:hover{box-shadow:var(--shadow-raised);border-color:var(--accent-line)}.gallery-collection-image{aspect-ratio:4/3;background:radial-gradient(120% 100% at 50% 0%, var(--surface) 55%, var(--surface-muted) 100%);border-bottom:1px solid var(--line);display:block;position:relative;overflow:hidden}.gallery-collection-image img{padding:5%}.gallery-collection-copy{flex-direction:column;flex:1;gap:0;padding:28px 28px 32px;display:flex}.gallery-collection-actions{margin-top:auto;padding-top:8px}.gallery-collection-lead{grid-template-columns:1.15fr 1fr;display:grid}@media (min-width:901px){.gallery-collection-lead .gallery-collection-media,.gallery-collection-lead .gallery-collection-media>.gallery-collection-image{height:100%}}.gallery-collection-lead .gallery-collection-image{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line);min-height:340px}.gallery-collection-lead .gallery-collection-copy{display:flex}.gallery-collection-copy h2{letter-spacing:-.02em;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.4}.gallery-collection-copy p{color:var(--muted);font-size:1rem;line-height:1.8}.gallery-contribution{margin-block:14px 24px}.gallery-collection-tech{margin-top:18px}.gallery-collection-actions{flex-wrap:wrap;gap:12px 24px;margin-top:16px;display:flex}.gallery-collection-metrics{margin-top:18px;padding-left:18px;font-size:.9rem;line-height:1.9;list-style:outside}.gallery-topics{flex-wrap:wrap;gap:12px 28px;margin-block:0 36px;display:flex}.gallery-reading-list a{border-top:1px solid var(--line);grid-template-columns:1.1fr 1fr auto;align-items:start;gap:48px;padding-block:30px;display:grid}.gallery-reading-list h2{font-size:1.2rem;line-height:1.55}.gallery-reading-list p{color:var(--muted);font-size:1rem;line-height:1.8}.gallery-reading-list span{align-items:center;gap:10px;min-height:44px;font-size:.875rem;display:flex}.gallery-reading-list a:hover h2{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:1px}.gallery-empty{color:var(--muted);padding-block:40px}.back-link{margin-bottom:32px}.page-end{border-top:1px solid var(--line);margin-top:64px;padding-top:32px}.page-end>p{color:var(--muted);line-height:1.85}.page-end h2{margin-bottom:20px;font-size:1.5rem}.related-links{list-style:none}.related-links a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:48px;padding-block:16px;display:flex}.related-links svg{flex-shrink:0}.about-opening{border-bottom:1px solid var(--line);margin-bottom:64px;padding-bottom:32px}.about-opening h1{letter-spacing:-.03em;font-size:clamp(2rem,4vw,3.25rem);line-height:1.2}.about-counterpart{color:var(--muted);margin-top:16px;font-size:1.25rem}.about-opening-bottom{justify-content:space-between;align-items:baseline;gap:24px;margin-top:40px;display:flex}.about-opening-bottom p{font-size:1.1rem;line-height:1.7}.about-opening-bottom span{color:var(--muted);font-size:.9rem}.about-layout{grid-template-columns:1.5fr 1fr;gap:12%;display:grid}.about-layout h2,.contact-letter h2{margin-bottom:24px;font-size:1.2rem}.about-biography .large-copy{color:var(--text);font-size:clamp(1.15rem,1.8vw,1.4rem);line-height:1.8}.about-biography>p{color:var(--muted);margin-bottom:22px;font-size:1.02rem;line-height:1.85}.about-record{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);align-self:start;padding:32px}.about-record p{margin-bottom:18px;line-height:1.8}.about-record dl,.contact-aside dl{gap:24px;margin-block:32px 0;display:grid}.about-record dt,.contact-aside dt{color:var(--muted);margin-bottom:6px;font-size:.85rem}.about-skills,.about-evidence{margin-top:var(--space-section)}.about-evidence h2{margin-bottom:24px;font-size:clamp(1.5rem,2.4vw,2rem)}.about-skills>h2{margin-bottom:24px;font-size:2rem}.about-skill-row{border-top:1px solid var(--line);grid-template-columns:1fr 2fr;gap:40px;padding-block:28px;display:grid}.about-skill-row h3{font-size:1.2rem}.about-skill-row ul,.plain-tags{flex-wrap:wrap;gap:12px 24px;line-height:1.8;list-style:none;display:flex}.contact-layout{grid-template-columns:1.6fr 1fr;gap:10%;display:grid}.contact-letter{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:48px}.contact-address{overflow-wrap:anywhere;border-bottom:1px solid var(--line);align-items:center;gap:16px;padding-bottom:24px;font-size:clamp(1rem,2vw,1.8rem);display:flex}.contact-address svg{flex-shrink:0}.contact-context{margin-top:40px}.contact-context h3{margin-bottom:12px;font-size:1.1rem}.contact-context p{color:var(--muted);line-height:1.9}.contact-aside{flex-direction:column;align-items:start;gap:16px;display:flex}.contact-aside dl{margin-block:0 24px}.form-feedback{min-height:24px;font-size:.875rem;line-height:1.7}.project-opening{margin-bottom:48px}.project-opening h1{letter-spacing:-.025em;max-width:24ch;font-size:clamp(1.75rem,3.2vw,2.75rem);line-height:1.25}.project-opening-summary{grid-template-columns:1.4fr 1fr;gap:10%;margin-top:32px;display:grid}.project-opening-summary>p{color:var(--muted);font-size:1.1rem;line-height:1.9}.project-opening-summary dl{align-content:start;gap:18px;font-size:.9rem;line-height:1.8;display:grid}.project-opening-summary dt{color:var(--muted)}.project-companion{margin-block:-16px 32px}.project-gallery-stage{aspect-ratio:16/9;background:var(--surface-muted);cursor:zoom-in;width:100%;display:block;position:relative}.project-gallery-stage img{padding:3%}.project-gallery-expand{background:var(--surface);padding:12px;position:absolute;bottom:20px;right:20px}.project-gallery figcaption{justify-content:space-between;align-items:center;gap:20px;padding-top:8px;font-size:.85rem;display:flex}.project-thumbnails{gap:12px;padding-block:12px;display:flex;overflow-x:auto}.project-thumbnails button{aspect-ratio:16/10;background:var(--surface-muted);border:1px solid #0000;flex-shrink:0;width:112px;position:relative}.project-thumbnails button[aria-pressed=true]{border-color:var(--text)}.project-thumbnails img{padding:4px}.project-narrative{grid-template-columns:2fr 1fr;gap:10%;margin-top:64px;display:grid}.project-narrative-section{margin-bottom:48px;scroll-margin-top:96px}.project-narrative-section h2{margin-bottom:24px;font-size:1.65rem}.project-narrative-section ul{padding-left:20px;list-style:outside}.project-narrative-section li{margin-bottom:16px;padding-left:8px;line-height:1.9}.project-side{align-self:start;position:sticky;top:110px}.project-side h2{margin-bottom:20px;font-size:1.2rem}.project-side .plain-tags{color:var(--muted);gap:12px 18px;font-size:.9rem}.project-side-links{flex-direction:column;align-items:start;gap:12px;margin-top:32px;display:flex}.reading-layout{grid-template-columns:minmax(0,1fr) 240px;gap:80px;max-width:1160px;margin:auto;display:grid}.reading-document{min-width:0}.reading-byline{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-bottom:28px;font-size:.875rem;line-height:1.9;display:flex}.reading-byline a{color:var(--text);text-decoration:underline}.reading-aside{align-self:start;max-height:calc(100dvh - 132px);position:sticky;top:108px;overflow-y:auto}.reading-aside h2{margin-bottom:20px;font-size:1rem}.reading-toc a{color:var(--muted);padding-block:7px;font-size:.875rem;line-height:1.8;display:block}.reading-toc a:hover{color:var(--text);text-decoration:underline}.reading-toc .toc-child{padding-left:16px}.reading-mobile-toc{display:none}.reading-time{align-items:center;gap:6px;display:inline-flex}.reading-aside-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:20px}.reading-aside-card+.reading-aside-card{margin-top:20px}.reading-aside-card h2{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:12px;font-size:.8rem}.reading-toc{margin:0;padding:0;list-style:none}.reading-toc a{color:var(--muted);border-left:2px solid var(--line);padding:6px 0 6px 14px;font-size:.875rem;line-height:1.8;display:block}.reading-toc a:hover{color:var(--text)}.reading-toc a[aria-current=true]{color:var(--accent-hover);border-left-color:var(--accent);font-weight:600}.reading-toc .toc-child{margin-left:12px;font-size:.82rem}.ai-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow);margin-bottom:32px;font-size:.9rem;overflow:hidden}.ai-panel-head{border-bottom:1px solid var(--line);background:var(--surface-muted);justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.ai-panel-head>span{align-items:center;gap:10px;font-weight:700;display:inline-flex}.ai-panel-head>span svg{color:var(--accent)}.ai-panel-status{color:var(--muted);font-size:.8rem;font-weight:500}.ai-panel-form{flex-wrap:wrap;gap:10px;padding:16px 20px;display:flex}@media (max-width:560px){.ai-panel-form .solid-button,.ai-panel-form .ui-button{flex:1}}.ai-panel-form input{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-inset);min-width:0;font:inherit;flex:1;padding:12px 14px;font-size:.9rem}.ai-panel-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.ai-panel-actions{flex-wrap:wrap;gap:10px;padding:0 20px 16px;display:flex}.ai-panel-hints{color:var(--muted);flex-wrap:wrap;gap:8px 20px;padding:0 20px 16px;font-size:.8rem;display:flex}.ai-panel-hints kbd{background:var(--surface-muted);border:1px solid var(--line);border-radius:var(--radius-control);font-size:.72rem;font-family:var(--font-family-mono);padding:1px 7px}.ai-panel-state{border-top:1px solid var(--line);align-items:center;gap:8px;padding:10px 20px;font-size:.82rem;font-weight:600;display:flex}.ai-panel-state.is-thinking,.ai-panel-state.is-streaming{background:var(--accent-soft);color:var(--accent-hover)}.ai-panel-state.is-stalled{background:var(--warning-soft);color:var(--warning)}.ai-panel-state.is-error{background:var(--danger-soft);color:var(--danger)}.ai-panel-result{border-top:1px solid var(--line);padding:20px;line-height:1.85}.ai-panel-result-head{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.8rem;font-weight:700;display:flex}.ai-panel-result-head button{min-height:32px;color:var(--muted);align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.ai-panel-result-head button:hover{color:var(--text)}.ai-panel-result pre{background:var(--surface-muted);border:1px solid var(--line);border-radius:var(--radius-inset);padding:12px;font-size:.82rem;overflow-x:auto}.ai-panel-chips{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.ai-panel-chips>p{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:10px;font-size:.8rem;font-weight:700}.ai-panel-chips button{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-pill);margin:0 8px 8px 0;padding:7px 14px;font-size:.82rem}.ai-panel-chips button:hover{border-color:var(--accent);color:var(--accent-hover)}.notes-reading .reading-prose h2{padding-left:18px;position:relative}.notes-reading .reading-prose h2:before{content:"";background:var(--accent);border-radius:2px;width:8px;height:8px;position:absolute;top:.45em;left:0}.article-pagination a{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:18px 20px}.article-pagination a:hover{border-color:var(--accent-line)}.author-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow);align-items:center;gap:18px;margin-top:56px;padding:24px;display:flex}.author-mark{background:var(--dark);width:52px;height:52px;color:var(--on-dark);border-radius:50%;flex-shrink:0;place-items:center;font-size:1.3rem;font-weight:800;display:grid}.author-card p{margin:0;line-height:1.7}.author-card .author-name{font-weight:700}.author-card .author-links{flex-wrap:wrap;gap:4px 20px;margin-top:8px;font-size:.88rem;display:flex}.reading-nav{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:32px;display:flex}.reading-tools{border-block:1px solid var(--line);margin-bottom:24px;padding-block:12px}.reading-tools summary{cursor:pointer;align-items:center;min-height:44px;display:flex}.reading-tools>div{margin-top:16px}.article-pagination{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:32px;margin-top:56px;padding-top:28px;display:grid}.article-pagination a{flex-direction:column;gap:12px;line-height:1.8;display:flex}.article-pagination span{color:var(--muted);font-size:.85rem}.article-languages{gap:20px;display:flex}.article-languages a{align-items:center;min-height:44px;display:flex}.notes-reading .reading-prose{font-size:1.0625rem;line-height:1.95}.notes-reading .reading-prose h1{margin-bottom:32px;font-size:clamp(1.9rem,3.7vw,3.2rem);font-weight:500;line-height:1.45}.notes-reading .reading-prose h2{font-weight:600}.notes-reading .reading-prose pre{font-size:.875rem}.notes-reading .reading-prose :where(p,li){overflow-wrap:anywhere}.search-form{max-width:800px;margin-bottom:48px}.search-form label,.access-form label{margin-bottom:12px;font-weight:600;display:block}.search-input-row{gap:12px;display:flex}.search-input-row input,.access-form input{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-control);width:100%;min-width:0;font:inherit;padding:14px 16px}.solid-button{border-radius:var(--radius-control);background:var(--dark);min-height:48px;color:var(--on-dark);cursor:pointer;justify-content:center;align-items:center;gap:12px;padding:12px 24px;font-size:.9rem;font-weight:600;display:inline-flex}.solid-button:disabled{opacity:.55;cursor:wait}.search-count{color:var(--muted);margin-bottom:24px}.search-empty{padding-block:32px}.search-empty h2{margin-bottom:16px;font-size:1.5rem}.search-empty p{color:var(--muted);line-height:1.9}.skills-layout{grid-template-columns:1.8fr 1fr;gap:10%;display:grid}.skill-entry{border-top:1px solid var(--line);padding-block:32px 40px}.skill-entry h2{font-size:2rem}.skill-entry p{color:var(--muted);margin-top:20px;line-height:1.9}.skill-entry .plain-tags{color:var(--muted);margin-block:24px;font-size:.85rem}.skill-version{color:var(--accent);font-size:.85rem;font-weight:600}.skill-entry--agent{border-inline-start:2px solid var(--accent);background:var(--surface);padding-inline:24px}.agent-skill-setup{border:1px solid var(--line);background:var(--surface-muted);margin-top:24px;padding:20px}.agent-skill-setup h3{font-size:1rem;font-weight:600}.agent-skill-setup ol{margin:12px 0 0;padding-inline-start:20px;line-height:1.9;list-style:decimal}.agent-skill-setup li{padding-inline-start:4px}.agent-skill-setup code{font:inherit;font-weight:600}.skill-entry .agent-skill-setup .agent-skill-compatibility{color:var(--muted);margin-top:12px;font-size:.85rem;line-height:1.7}.form-feedback.is-error{color:var(--danger)}.form-feedback.is-success{color:var(--success)}.access-form{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);align-self:start;padding:32px;position:sticky;top:108px}.access-form h2{margin-bottom:16px;font-size:1.4rem}.access-form p{color:var(--muted);margin-bottom:24px;font-size:.95rem;line-height:1.8}.access-form .gallery-text-link{margin-top:16px}.status-page{max-width:900px;min-height:75vh;margin:auto;padding-block:60px}.status-page h1{letter-spacing:-.035em;font-size:clamp(2.3rem,5vw,4.8rem);line-height:1.3}.status-page>p{color:var(--muted);max-width:50ch;margin-block:28px;font-size:1.1rem;line-height:1.9}.status-actions{flex-wrap:wrap;gap:20px;display:flex}@media (max-width:1100px){.gallery-container{width:calc(100% - 56px)}.gallery-practice-layout,.about-layout,.contact-layout{gap:7%}.reading-layout{grid-template-columns:minmax(0,1fr) 200px;gap:40px}}@media (max-width:900px){.reading-layout{grid-template-columns:1fr}.reading-aside{display:none}.reading-mobile-toc{border-block:1px solid var(--line);margin-bottom:28px;padding-block:16px;display:block}.reading-mobile-toc summary{cursor:pointer;min-height:44px}}@media (max-width:760px){.gallery-container{width:calc(100% - 40px)}.gallery-index{padding-block:110px 56px}.gallery-index-heading{grid-template-columns:1fr;gap:24px;margin-bottom:40px}.gallery-project-collection{grid-template-columns:1fr;gap:48px}.gallery-collection-lead{grid-template-columns:1fr}.gallery-collection-lead .gallery-collection-image{aspect-ratio:4/3;border-right:0;border-bottom:1px solid var(--line);min-height:0}.gallery-collection-copy{padding:22px 22px 26px}.gallery-reading-list a{grid-template-columns:1fr;gap:12px}.gallery-intro{padding-top:104px}.gallery-intro-heading{flex-direction:column;align-items:start;gap:6px;padding-bottom:20px}.gallery-opening{grid-template-columns:1fr;gap:30px;padding-block:34px 24px}.gallery-statement h2{font-size:clamp(2rem,7.5vw,3rem)}.gallery-summary{max-width:52ch}.gallery-intro-foot{flex-direction:column;gap:8px}.gallery-section-heading{flex-direction:column;align-items:start;gap:12px;margin-bottom:28px}.gallery-project.selected-work-row{grid-template-columns:1fr;gap:28px;padding-bottom:32px}.gallery-project-reverse .gallery-project-image{order:0}.gallery-practice-layout{grid-template-columns:1fr;gap:40px}.gallery-note-list{grid-template-columns:1fr;gap:20px}.gallery-contact{padding-block:56px}.gallery-contact-email{gap:10px;font-size:clamp(.95rem,4vw,1.6rem)}.about-opening{margin-bottom:40px}.about-opening-bottom{flex-direction:column;gap:16px;margin-top:28px}.about-layout,.about-skill-row,.contact-layout,.project-opening-summary,.project-narrative,.skills-layout{grid-template-columns:1fr;gap:32px}.about-record,.contact-letter,.access-form{padding:24px}.about-skill-row{gap:16px}.contact-address{gap:8px;font-size:clamp(.9rem,3.7vw,1.3rem)}.project-gallery-stage{aspect-ratio:4/3}.project-side,.access-form{position:static}.skills-layout .access-form{order:-1}.article-pagination{grid-template-columns:1fr}.search-input-row{flex-direction:column}.status-page{padding-block:28px}}.reading-progress{background:var(--line);height:2px;margin-bottom:24px}.reading-progress span{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.note-code{border:1px solid var(--line);background:var(--surface);margin-block:24px}.note-code-bar{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;font-size:.75rem;display:flex}.note-code-bar button{align-items:center;gap:8px;min-height:36px;font-size:.78rem;font-weight:600;display:inline-flex}.note-code pre{margin:0;padding:16px;font-size:.875rem;line-height:1.7;overflow-x:auto}.note-inline-code{background:var(--surface-muted);border:1px solid var(--line);padding:1px 6px;font-size:.875em}.note-table{border:1px solid var(--line);margin-block:24px;overflow-x:auto}.note-table table{border-collapse:collapse;width:100%;font-size:.9rem}.note-table th,.note-table td{border:1px solid var(--line);text-align:left;padding:10px 12px}.note-table th{background:var(--surface-muted)}.note-code-actions{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.note-code-actions button{border-radius:var(--radius-control);min-height:32px;color:var(--muted);align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.note-code-actions button:hover{color:var(--text);background:var(--surface-muted)}.note-code-actions button:disabled{opacity:.5}.note-flag{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);margin-left:8px;padding:2px 8px;font-style:normal}.note-flag-live{border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);align-items:center;gap:4px;margin-left:8px;padding:2px 8px;font-style:normal;display:inline-flex}.note-flag-live:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.note-spinner{border:2px solid var(--line);border-top-color:var(--text);border-radius:50%;width:12px;height:12px}.note-code-body pre{margin:0;padding:16px;font-size:.875rem;line-height:1.7;overflow-x:auto}.note-editor{width:100%;min-height:140px;font-family:var(--font-family-mono);background:var(--surface-muted);color:var(--text);resize:vertical;border:0;outline:none;padding:16px;font-size:.875rem;line-height:1.7}.note-review{border-top:1px solid var(--line);background:var(--surface-muted);padding:20px;font-size:.9rem}.note-review-loading{opacity:.6;gap:10px;display:grid}.note-review-loading span{border-radius:var(--radius-control);background:var(--line);height:8px}.note-review-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;font-weight:700;display:flex}.note-review-head>span{align-items:center;gap:8px;display:inline-flex}.note-review-head button{border-radius:var(--radius-control);min-width:36px;min-height:36px;color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.note-review-head button:hover{background:var(--surface);color:var(--text)}.note-review-body{line-height:1.8}.note-review-body pre{background:var(--surface);border:1px solid var(--line);padding:12px;overflow-x:auto}.note-review-foot{border-top:1px solid var(--line);justify-content:flex-end;margin-top:16px;padding-top:12px;display:flex}.note-review-foot button{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);align-items:center;gap:8px;min-height:36px;padding:6px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.live-loading{color:var(--muted);padding:16px;font-size:.875rem}.meta-line{align-items:center;gap:10px;display:flex}.meta-line svg{color:var(--muted);flex-shrink:0}.tech-chips{flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.tech-chips li{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-pill);color:var(--text);padding:5px 12px;font-size:.8rem;line-height:1.6}.tech-chips li:hover{border-color:var(--accent);color:var(--accent-hover)}.skill-tiles{flex-wrap:wrap;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.skill-tiles li{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-inset);align-items:center;gap:8px;padding:6px 12px 6px 8px;font-size:.88rem;line-height:1.6;display:inline-flex}.skill-tiles img{-o-object-fit:contain;object-fit:contain;width:20px;height:20px}.section-label{color:var(--muted);align-items:center;gap:10px;margin-bottom:16px;font-size:.85rem;display:flex}.section-label svg{flex-shrink:0}.contact-line{align-items:center;gap:10px;display:flex}.contact-line svg{color:var(--muted);flex-shrink:0}.skills-page.gallery-index{padding-block:clamp(112px,10vw,152px) 88px}.skills-page :is(a,button){-webkit-tap-highlight-color:transparent}.skills-page :is(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skills-hero{grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr);align-items:center;gap:clamp(36px,6vw,96px);min-width:0;margin-bottom:clamp(52px,7vw,100px);display:grid}.skills-hero-copy{min-width:0}.skills-hero-eyebrow,.skills-section-kicker{font:600 .73rem/1.4 var(--font-family-mono);letter-spacing:.08em;color:var(--accent);align-items:center;gap:10px;margin:0 0 22px;display:inline-flex}.skills-hero-eyebrow span:first-child{color:var(--text)}.skills-hero-eyebrow-rule{background:var(--line);width:28px;height:1px}.skills-hero h1{letter-spacing:-.055em;overflow-wrap:normal;max-width:13ch;font-size:clamp(3rem,5.2vw,5.75rem);font-weight:600;line-height:1.04}.skills-hero-accent{color:var(--accent)}.skills-hero-copy>p{max-width:53ch;color:var(--muted);margin-top:28px;font-size:1.025rem;line-height:1.85}.skills-hero-actions{flex-wrap:wrap;align-items:center;gap:16px 22px;margin-top:34px;display:flex}.skills-hero-actions a{align-items:center;gap:12px;min-height:48px;font-size:.85rem;font-weight:600;display:inline-flex}.skills-hero-primary{background:var(--dark);color:var(--on-dark);border:1px solid var(--dark);border-radius:var(--radius-control);padding:12px 18px}.skills-hero-primary:hover{background:var(--accent);border-color:var(--accent)}.skills-hero-secondary{color:var(--text);border-bottom:1px solid var(--line)}.skills-hero-secondary:hover{color:var(--accent);border-color:var(--accent)}.skills-hero-foot{border-top:1px solid var(--line);flex-wrap:wrap;gap:28px;margin-top:clamp(38px,5vw,76px);padding-top:18px;display:flex}.skills-hero-foot span{font:600 .68rem/1.5 var(--font-family-mono);letter-spacing:.025em;color:var(--muted);align-items:baseline;gap:9px;display:flex}.skills-hero-foot strong{font:500 1.45rem/1.1 var(--font-gallery), sans-serif;letter-spacing:-.04em;color:var(--text)}.skills-demo{border:1px solid var(--console-border);border-radius:var(--radius-card);background:var(--console-bg);min-width:0;color:var(--console-text);box-shadow:var(--shadow);overflow:hidden}.skills-demo-toolbar{border-bottom:1px solid var(--console-divider);font:500 .68rem var(--font-family-mono);color:var(--console-text-muted);align-items:center;gap:15px;padding:15px 21px;display:flex}.skills-demo-dots{align-items:center;gap:5px;display:flex}.skills-demo-dots i{background:var(--console-control-border);border-radius:50%;width:6px;height:6px}.skills-demo-dots i:first-child{background:var(--console-accent)}.skills-demo-status{align-items:center;gap:7px;margin-left:auto;display:inline-flex}.skills-demo-status>span{background:var(--console-accent);border-radius:50%;width:6px;height:6px;display:block}.skills-demo-body{padding:clamp(19px,2.8vw,31px)}.skills-demo-head{justify-content:space-between;align-items:start;gap:15px;margin-bottom:26px;display:flex}.skills-demo-kicker{color:var(--console-accent-soft);font:600 .68rem var(--font-family-mono);letter-spacing:.1em;margin-bottom:10px}.skills-demo-head h2{letter-spacing:-.015em;max-width:25ch;font-size:clamp(1.15rem,1.7vw,1.45rem);font-weight:500;line-height:1.45}.skills-demo-play{border:1px solid var(--console-control-border);border-radius:var(--radius-control);width:36px;height:36px;color:var(--console-text-secondary);cursor:pointer;flex:none;place-items:center;display:grid}.skills-demo-play:hover{border-color:var(--console-accent);color:var(--console-accent)}.skills-demo-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px;display:grid}.skills-demo-step{text-align:left;cursor:pointer;min-width:0;min-height:74px;color:var(--console-text-subtle);border:0;flex-direction:column;align-items:start;gap:5px;padding:8px 4px 10px;font-size:clamp(.67rem,.85vw,.8rem);display:flex;position:relative}.skills-demo-step-index{color:var(--console-text-subtle);font:500 .67rem var(--font-family-mono)}.skills-demo-step[aria-pressed=true]{color:var(--console-text)}.skills-demo-step[aria-pressed=true] .skills-demo-step-index{color:var(--console-accent)}.skills-demo-step-track{background:var(--console-control-border);height:2px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.skills-demo-step-track>span{background:var(--console-accent);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.skills-demo-step[aria-pressed=true] .skills-demo-step-track>span{transform:scaleX(1)}.skills-demo-output{border:1px solid var(--console-border);border-radius:var(--radius-inset);background:var(--console-well);min-width:0;min-height:264px;overflow:hidden}.skills-demo-frame{flex-direction:column;min-height:264px;display:flex}.skills-demo-command{border-bottom:1px solid var(--console-divider);color:var(--console-text-secondary);font:500 .74rem/1.7 var(--font-family-mono);overflow-wrap:anywhere;padding:14px 17px}.skills-demo-command span{color:var(--console-accent)}.skills-demo-lines{flex:1;gap:15px;padding:22px 17px;display:grid}.skills-demo-line{color:var(--console-text-secondary);grid-template-columns:23px 16px minmax(0,1fr);align-items:center;gap:8px;font-size:.78rem;line-height:1.6;display:grid}.skills-demo-line span{color:var(--console-text-subtle);font:400 .68rem var(--font-family-mono)}.skills-demo-line svg{color:var(--console-success)}.skills-demo-result{border-top:1px solid var(--console-divider);font:500 .72rem var(--font-family-mono);color:var(--console-text);align-items:center;gap:9px;padding:14px 16px;display:flex}.skills-demo-result-dot{background:var(--console-success);border-radius:50%;width:6px;height:6px}.skills-demo-result-step{color:var(--console-text-subtle);margin-left:auto}.skills-demo-note{color:var(--console-text-muted);padding:12px 20px;font-size:.7rem;line-height:1.5}.skills-page .skills-access{background:var(--surface);box-shadow:none;border-radius:var(--radius-card);grid-template-columns:minmax(0,1fr) minmax(265px,.62fr);align-items:center;gap:clamp(24px,5vw,80px);margin-bottom:30px;padding:clamp(24px,4vw,40px);scroll-margin-top:105px;display:grid;position:static}.skills-access-heading .skills-section-kicker{margin-bottom:11px}.skills-page .skills-access h2{letter-spacing:-.02em;margin:0;font-size:clamp(1.3rem,2vw,1.8rem);font-weight:600;line-height:1.35}.skills-page .skills-access p{color:var(--muted);margin:11px 0 0;font-size:.86rem;line-height:1.7}.skills-access-control{min-width:0}.skills-page .skills-access label{margin-bottom:9px;font-size:.8rem}.skills-page .skills-access .ui-input{width:100%}.skills-access-help{text-underline-offset:4px;min-height:36px;color:var(--muted);align-items:center;gap:6px;margin-top:7px;font-size:.78rem;text-decoration:underline;display:inline-flex}.skills-access-help:hover{color:var(--accent)}.skills-page .harness-feature{background:var(--surface-muted);min-width:0;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-card);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(26px,4vw,64px);margin-bottom:clamp(56px,8vw,110px);padding:clamp(24px,4vw,48px);display:grid;position:relative;overflow:hidden}.skills-page .harness-feature-line{background:var(--accent);transform-origin:0;width:100%;height:2px;position:absolute;inset:0 auto auto 0}.harness-feature-copy{min-width:0}.harness-feature .harness-eyebrow{color:var(--accent);align-items:center;gap:10px;margin:0 0 18px;font-size:.85rem;font-weight:600;display:flex}.harness-signal{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);border-radius:50%;flex:none}.skills-page .harness-feature h2{letter-spacing:-.035em;max-width:18ch;font-size:clamp(2rem,3.4vw,3.4rem);font-weight:600;line-height:1.14}.skills-page .harness-feature h2 span{color:var(--accent)}.skills-page .harness-description{max-width:52ch;color:var(--muted);margin-top:20px;font-size:.96rem;line-height:1.85}.harness-facts{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin:20px 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.harness-facts li{border-left:1px solid var(--line);padding-left:12px}.harness-facts li:first-child{border-left:none;padding-left:0}.harness-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:26px;display:flex}.skills-page .harness-primary-link{border-radius:var(--radius-control);min-height:48px;color:var(--on-dark);background:var(--dark);cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-size:.88rem;font-weight:600;display:inline-flex}.skills-page .harness-primary-link:hover{background:var(--accent)}.skills-page .harness-primary-link:disabled{opacity:.6;cursor:wait}.skills-page .harness-footnote{color:var(--muted);align-items:start;gap:8px;margin-top:16px;font-size:.79rem;line-height:1.7;display:flex}.harness-footnote svg{flex:none;margin-top:2px}.skills-page .harness-feedback{color:var(--muted);margin-top:12px;font-size:.86rem}.skills-page .harness-feedback.is-error{color:var(--danger)}.skills-page .harness-feedback.is-success{color:var(--success)}.harness-package{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);min-width:0;overflow:hidden}.harness-package-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;display:flex}.harness-package-title{align-items:center;gap:12px;font-size:.95rem;font-weight:600;display:flex}.harness-package-title svg{color:var(--accent)}.harness-package-extension{font:600 .75rem var(--font-family-mono);color:var(--muted)}.harness-package-files{margin:0;padding:8px 22px;list-style:none}.harness-package-files li{min-width:0;font:500 .83rem/1.6 var(--font-family-mono);border-bottom:1px solid var(--line);overflow-wrap:anywhere;align-items:center;gap:12px;padding:12px 0;display:flex}.harness-package-files li:last-child{border-bottom:0}.harness-package-files svg{color:var(--muted);flex:none}.harness-package-next{background:var(--surface-muted);border-top:1px solid var(--line);padding:19px 22px 22px}.harness-package-next-label{color:var(--accent);font-size:.77rem;font-weight:600}.harness-package-next p{color:var(--muted);margin-top:8px;font-size:.84rem;line-height:1.8}.skills-page .harness-feature :is(button,a):focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skills-collection{scroll-margin-top:100px}.skills-collection-head{justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px;display:flex}.skills-collection-head .skills-section-kicker{margin-bottom:14px}.skills-collection-head h2{letter-spacing:-.035em;max-width:23ch;font-size:clamp(1.7rem,2.8vw,2.65rem);font-weight:600;line-height:1.2}.skills-collection-head>p{max-width:38ch;color:var(--muted);font-size:.88rem;line-height:1.75}.skills-collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.skills-collection-grid>div{min-width:0;height:100%}.skills-page .skill-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;min-width:0;height:100%;padding:clamp(22px,2.6vw,32px);display:flex}.skills-page .skill-card:hover{border-color:var(--accent-line);box-shadow:var(--shadow-soft)}.skill-card-head{justify-content:space-between;align-items:start;gap:14px;margin-bottom:30px;display:flex}.skill-card-number{font:500 .76rem var(--font-family-mono);color:var(--muted)}.skill-card-icon{border:1px solid var(--line);border-radius:var(--radius-inset);width:42px;height:42px;color:var(--accent);background:var(--surface-muted);place-items:center;display:grid}.skill-card-type{font:600 .72rem var(--font-family-mono);letter-spacing:.04em;color:var(--accent)}.skills-page .skill-card h3{letter-spacing:-.025em;margin-top:12px;font-size:clamp(1.35rem,1.8vw,1.8rem);font-weight:600;line-height:1.35}.skills-page .skill-card-description{color:var(--muted);margin-top:14px;font-size:.87rem;line-height:1.8}.skill-card-tags{flex-wrap:wrap;gap:7px;margin:22px 0 24px;padding:0;list-style:none;display:flex}.skill-card-tags li{border:1px solid var(--line);border-radius:var(--radius-control);color:var(--muted);padding:4px 8px;font-size:.7rem;line-height:1.5}.skill-card-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;margin-top:auto;padding-top:16px;display:flex}.skill-card-format{color:var(--muted);font:500 .75rem var(--font-family-mono);align-items:center;gap:7px;display:flex}.skills-page .skill-card .form-feedback{margin-top:14px;font-size:.77rem}.skills-bottom-note{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:36px;padding-top:22px;font-size:.79rem;line-height:1.75;display:flex}.skills-bottom-note a{color:var(--text);text-underline-offset:5px;align-items:center;gap:8px;text-decoration:underline;display:inline-flex}.skills-bottom-note a:hover{color:var(--accent)}@media (max-width:1120px){.skills-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:35px}.skills-hero h1{font-size:clamp(2.7rem,5vw,4.4rem)}}@media (max-width:950px){.skills-hero{grid-template-columns:minmax(0,1fr)}.skills-hero h1{max-width:17ch}.skills-hero-foot{margin-top:34px}.skills-demo{width:100%;max-width:700px}.skills-page .harness-feature{grid-template-columns:minmax(0,1fr)}.skills-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skills-collection-grid>div:last-child{grid-column:1/-1}}@media (max-width:760px){.skills-page.gallery-index{padding-block:110px 64px}.skills-hero{gap:34px;margin-bottom:50px}.skills-hero h1{font-size:clamp(2.65rem,9vw,4rem)}.skills-page .skills-access{grid-template-columns:minmax(0,1fr);gap:20px;padding:24px}.skills-collection-head{flex-direction:column;align-items:start;gap:12px}.skills-collection-grid{grid-template-columns:1fr}.skills-collection-grid>div:last-child{grid-column:auto}}@media (max-width:440px){.skills-demo-toolbar{gap:9px;padding:12px;font-size:.63rem}.skills-demo-body{padding:18px 14px}.skills-demo-head h2{font-size:1.08rem}.skills-demo-step{font-size:.64rem}.skills-demo-command{font-size:.67rem}.skills-demo-line{grid-template-columns:18px 14px minmax(0,1fr);font-size:.72rem}.skills-page .harness-feature{padding:24px 18px}.harness-package-files,.harness-package-header,.harness-package-next{padding-inline:16px}}
:is(.lux-home,.lux-page){--lux-display:var(--font-family-body);--home-warm:var(--palette-home-warm);--home-navy:var(--palette-home-navy);--home-navy-raised:var(--palette-home-navy-raised);--home-navy-line:var(--palette-home-navy-line);--home-on-navy-muted:var(--palette-home-on-navy-muted);--lux-gutter:clamp(20px, 4.5vw, 64px);--lux-section:clamp(96px, 12vw, 176px);--lux-ease:cubic-bezier(.16, 1, .3, 1);--lux-r-lg:28px;--lux-r-md:20px;--lux-r-sm:10px;color:var(--text)}.lux-container{width:min(100% - 2 * var(--lux-gutter), 1240px);margin-inline:auto}.lux-label{color:var(--muted);font-size:var(--font-size-caption);letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:600}:is(.lux-home,.lux-page)[lang=th] .lux-label{letter-spacing:.02em;text-transform:none;font-size:.8125rem}.lux-display{font-family:var(--lux-display);letter-spacing:-.02em;font-weight:500}.lux-display em{color:var(--muted);font-style:normal}:is(.lux-home,.lux-page)[lang=th] .lux-display{letter-spacing:0;line-height:1.3}.lux-spectrum{--spectrum-base:var(--text);--grad-a:var(--palette-home-grad-blue);--grad-b:var(--palette-home-grad-violet);--grad-c:var(--palette-home-grad-pink);--grad-d:var(--palette-home-grad-orange);background:linear-gradient(90deg, var(--spectrum-base) 0 46%, var(--grad-a) 54%, var(--grad-b) 68%, var(--grad-c) 84%, var(--grad-d) 100%) 100% 0 / 200% 100%;color:#0000;-webkit-box-decoration-break:clone;box-decoration-break:clone;-webkit-background-clip:text;background-clip:text}[data-stack]{position:relative}[data-stack][data-stacked]{top:var(--stick,0px);position:sticky}[data-stack]:after{content:"";z-index:4;pointer-events:none;background:var(--home-navy);opacity:var(--dim,0);position:absolute;inset:0}[data-story-panel]{position:relative}:where([data-story-ready] [data-story-panel]:not(.lux-container)){border-radius:calc(var(--arrive,0) * 32px) calc(var(--arrive,0) * 32px) 0 0;box-shadow:0 calc(-18px - var(--arrive,0) * 26px) calc(44px + var(--arrive,0) * 44px) calc(-30px + var(--arrive,0) * 8px) color-mix(in srgb, var(--home-navy) calc(var(--arrive,0) * 55%), transparent), 0 calc(-4px - var(--arrive,0) * 4px) calc(10px + var(--arrive,0) * 10px) -6px color-mix(in srgb, var(--home-navy) calc(var(--arrive,0) * 32%), transparent), inset 0 1px 0 color-mix(in srgb, var(--text) calc(var(--arrive,0) * 7%), transparent);overflow:clip}:where(.lux-page>[data-story-panel]){background-color:var(--panel)}:where([data-story-ready] .lux-container[data-story-panel]){box-shadow:0 0 0 100vmax var(--panel);clip-path:inset(0 -100vmax)}@media (prefers-reduced-motion:reduce){[data-stack][data-stacked]{position:relative;top:auto}}.stage-hero,.chapter-stage{isolation:isolate}.stage-hero:before,.chapter-stage:before,.chapter-stage:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:-5% -4%}.stage-hero:before{background:radial-gradient(55% 70% at 8% 0%, var(--tone-a), transparent 72%)}.chapter-stage:before{background:radial-gradient(70% 80% at 0% 0%, var(--tone-a), transparent 70%)}.chapter-stage:after{background:radial-gradient(70% 80% at 100% 100%, var(--tone-b), transparent 70%)}@supports (animation-timeline:view()){.stage-hero:before{animation:linear both glow-hero;animation-timeline:view()}.chapter-stage:before{animation:linear both glow-a;animation-timeline:view()}.chapter-stage:after{animation:linear both glow-b;animation-timeline:view()}@keyframes glow-hero{0%{transform:translate(-1%,4%)scale(1.03)}to{transform:translate(2%,-3.5%)scale(1.09)}}@keyframes glow-a{0%{transform:translate(-2%,4%)scale(1.04)}to{transform:translate(1.5%,-3%)scale(1.1)}}@keyframes glow-b{0%{transform:translate(2%,4%)scale(1.1)}to{transform:translate(-1.5%,-3%)scale(1.04)}}}@media (prefers-reduced-motion:reduce){.stage-hero:before,.chapter-stage:before,.chapter-stage:after{animation:none}}body:has(:is(.lux-home,.lux-page)){background:var(--panel)}.site-app:has(:is(.lux-home,.lux-page)) .app-panel{box-shadow:none;border-radius:0;margin:0}.site-app:has(:is(.lux-home,.lux-page)) .site-footer{padding-bottom:calc(var(--dock-height) + var(--space-6));margin-top:0}@media (min-width:901px){.site-app:has(:is(.lux-home,.lux-page)) .site-header{inset:auto 0 max(18px, env(safe-area-inset-bottom)) 0;pointer-events:none;justify-content:center;width:auto;display:flex}.site-app:has(:is(.lux-home,.lux-page)) .site-nav-inner{background:var(--panel);height:auto;box-shadow:var(--float);pointer-events:auto;border-radius:999px;flex-direction:row;gap:2px;padding:6px}.site-app:has(:is(.lux-home,.lux-page)) .site-nav-inner>.site-brand{display:none}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav{flex-direction:row;gap:2px;width:auto;padding:0}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav>a{border-radius:999px;min-width:62px;padding:7px 10px 6px}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav>a[aria-current=page]{color:var(--on-accent);background:var(--accent);box-shadow:none}.site-app:has(:is(.lux-home,.lux-page)) .site-nav-tools{flex-direction:row;margin-top:0}.site-app:has(:is(.lux-home,.lux-page)) .skip-link{position:fixed}.site-app:has(:is(.lux-home,.lux-page)) #analytics-preferences{bottom:calc(var(--dock-height) + 40px)}}@media (max-width:900px){.site-app:has(:is(.lux-home,.lux-page)) .site-header{background:var(--panel)}}.site-app:has(:is(.lux-home,.lux-page)){--glass-fill:color-mix(in srgb, var(--panel) 94%, transparent);--dock-glass-fill:var(--glass-fill);--dock-ink:var(--text);--dock-muted:var(--muted);--dock-active-fill:var(--dark);--dock-active-ink:var(--on-dark);--glass-edge:0 0 0 1px color-mix(in srgb, var(--text) 9%, transparent);--glass-light:inset 0 1px 0 color-mix(in srgb, var(--panel) 85%, transparent);--glass-drop:0 18px 40px -16px color-mix(in srgb, var(--text) 30%, transparent)}.site-app[data-dock-tone=dark]:has(:is(.lux-home,.lux-page)){--dock-glass-fill:color-mix(in srgb, var(--dark) 94%, transparent);--dock-ink:var(--on-dark);--dock-muted:var(--on-dark);--dock-active-fill:color-mix(in srgb, var(--panel) 90%, transparent);--dock-active-ink:var(--dark)}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.site-app:has(:is(.lux-home,.lux-page)){--glass-fill:color-mix(in srgb, var(--panel) 72%, transparent);--dock-glass-fill:color-mix(in srgb, var(--panel) 16%, transparent)}.site-app[data-dock-tone=dark]:has(:is(.lux-home,.lux-page)){--dock-glass-fill:color-mix(in srgb, var(--panel) 7%, transparent)}}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav>a{color:var(--dock-muted)}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav>a:hover{color:var(--dock-ink)}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav>a[aria-current=page]{background:var(--dock-active-fill);color:var(--dock-active-ink)}.site-app:has(:is(.lux-home,.lux-page)) [data-nav-motion].desktop-nav>a[aria-current=page]{box-shadow:none;background:0 0}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav .drawer-open{color:var(--dock-ink)}@media (min-width:901px){.site-app:has(:is(.lux-home,.lux-page)) .site-nav-inner{background:var(--dock-glass-fill);-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--glass-light), var(--glass-edge), var(--glass-drop)}.site-app:has(:is(.lux-home,.lux-page)) .site-nav-tools a{color:var(--dock-ink)}.site-app:has(:is(.lux-home,.lux-page)) .site-nav-tools a:hover{background:color-mix(in srgb, var(--panel) 16%, transparent)}}@media (max-width:900px){.site-app:has(:is(.lux-home,.lux-page)){--dock-glass-fill:var(--panel)}.site-app[data-dock-tone=dark]:has(:is(.lux-home,.lux-page)){--dock-glass-fill:var(--panel);--dock-ink:var(--text);--dock-muted:var(--muted);--dock-active-fill:var(--dark);--dock-active-ink:var(--on-dark)}.site-app:has(:is(.lux-home,.lux-page)) .site-header{background:0 0}.site-app:has(:is(.lux-home,.lux-page)) .site-header:before{content:"";z-index:-1;background:var(--glass-fill);-webkit-backdrop-filter:blur(18px)saturate(180%);backdrop-filter:blur(18px)saturate(180%);box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--text) 8%, transparent);position:absolute;inset:0}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav{background:var(--dock-glass-fill);box-shadow:var(--glass-edge), 0 10px 28px -16px color-mix(in srgb, var(--text) 28%, transparent)}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav>a[aria-current=page]{color:var(--dock-ink);background:0 0}.site-app:has(:is(.lux-home,.lux-page)) .desktop-nav>a[aria-current=page] .site-nav-icon-frame{color:var(--dock-active-ink);background:var(--dock-active-fill)}}.lux-button{background:var(--accent);min-height:52px;color:var(--on-accent);border-radius:999px;align-items:center;gap:10px;padding:0 28px;font-size:.9375rem;font-weight:600;display:inline-flex}.lux-button:hover{background:var(--accent-hover)}.lux-text-link{background:linear-gradient(currentColor,currentColor) 0 calc(100% - 8px)/100% 1px no-repeat;align-items:center;gap:6px;min-height:44px;font-size:.9375rem;font-weight:600;display:inline-flex}.lux-rule{background:var(--line-strong);transform-origin:0;height:1px;position:absolute;inset:0 0 auto}.lux-notes-sec{--text:var(--on-dark);--muted:var(--home-on-navy-muted);--line-strong:var(--home-navy-line);--focus-ring:var(--on-dark);background:var(--home-navy);color:var(--text)}.lux-note-list svg{position:absolute;top:50%;right:4px;translate:0 -50%}.lux-note-list{margin:0;padding:0;list-style:none}.lux-note-list a{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:baseline;gap:8px 48px;padding:30px 56px 30px 0;display:grid;position:relative}.lux-note-list li:last-child a{border-bottom:1px solid var(--line-strong)}.lux-note-list h3{margin:0;font-size:1.1875rem;font-weight:600;line-height:1.4}.lux-note-list p{color:var(--muted);margin:0;font-size:.9375rem;line-height:1.65}.lux-contact{background:var(--home-navy);padding:0}.lux-contact-card .lux-spectrum,.lux-notes-sec .lux-spectrum{--spectrum-base:var(--on-dark);--grad-a:var(--palette-home-spectrum-1);--grad-b:var(--palette-home-spectrum-3);--grad-c:var(--palette-home-spectrum-4);--grad-d:var(--palette-home-spectrum-5)}.lux-contact-card{background:var(--dark) url(/images/home/stage-night.jpg) center / cover no-repeat;color:var(--on-dark);text-align:center;transform-origin:50% 0;padding-block:clamp(112px,15vw,208px);overflow:hidden}.lux-contact-card .lux-container{justify-items:center;display:grid}.lux-contact-card .lux-label{color:var(--on-dark-muted)}.lux-contact-card h2{margin:24px 0 0;font-size:clamp(2rem,5vw,4.5rem);line-height:1.25}.lux-contact-card h2 [data-mask-line]{padding-block:.12em}:is(.lux-home,.lux-page)[lang=th] .lux-contact-card h2{font-size:clamp(1.875rem,4vw,3.5rem);font-weight:500;line-height:1.45}.lux-contact-intro{max-width:46ch;color:var(--on-dark-muted);margin:24px 0 0;font-size:1.0625rem;line-height:1.7}.lux-contact-email{font-family:var(--lux-display);overflow-wrap:anywhere;border-bottom:1px solid;align-items:center;gap:.35em;margin-top:40px;padding-bottom:6px;font-size:clamp(1.5rem,3.4vw,2.75rem);display:inline-flex}.lux-contact-email:hover{gap:.6em}.lux-contact-email svg{flex:none;width:.8em;height:.8em}.lux-contact-links{flex-wrap:wrap;justify-content:center;gap:8px 32px;margin-top:32px;display:flex}.lux-contact-links a{min-height:44px;color:var(--on-dark-muted);align-items:center;gap:4px;font-size:.9375rem;display:inline-flex}.lux-contact-links a:hover{color:var(--on-dark)}.lux-contact-card :focus-visible{outline-color:var(--on-dark)}.lux-profile-links{gap:8px;display:flex}.lux-profile-links a{width:44px;height:44px;color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:50%;place-items:center;display:grid}.lux-profile-links a:hover{background:var(--text);color:var(--panel)}.lux-toolkit-row{grid-template-columns:minmax(150px,.7fr) minmax(0,2fr);align-items:baseline;gap:16px 40px;padding-block:25px;display:grid;position:relative}.lux-toolkit-rule{background:var(--line-strong);transform-origin:0;height:1px;position:absolute;inset:0 0 auto}.lux-toolkit-row h3{margin:0;font-size:1rem;font-weight:600;line-height:1.6}.lux-toolkit ul{flex-wrap:wrap;gap:12px 28px;margin:0;padding:0;list-style:none;display:flex}.lux-toolkit li{align-items:center;gap:9px;font-size:1rem;line-height:1.6;display:inline-flex}.lux-toolkit img{-o-object-fit:contain;object-fit:contain;filter:grayscale();opacity:.85;flex:none;width:18px;height:18px}@media (max-width:900px){.lux-toolkit-row{grid-template-columns:minmax(120px,.7fr) minmax(0,2fr);gap:12px 24px}.lux-note-list a{grid-template-columns:1fr}}@media (max-width:560px){.lux-toolkit-row{grid-template-columns:minmax(0,1fr);gap:10px;padding-block:20px}.lux-contact-email{font-size:clamp(1rem,5vw,1.25rem)}}
.lux-page{background:var(--panel)}.lux-page :focus-visible{outline:2px solid var(--accent);outline-offset:4px}.lux-page h1,.lux-page h2,.lux-page h3{font-family:var(--lux-display)}[data-tone]{--tone-a:var(--palette-home-glow-sky);--tone-b:var(--palette-home-glow-cream);--tone-wash:var(--palette-home-sky)}[data-tone=mint]{--tone-a:color-mix(in srgb, var(--palette-home-note-mint) 70%, var(--panel));--tone-b:var(--palette-home-glow-sky);--tone-wash:var(--palette-home-mint)}[data-tone=lilac]{--tone-a:color-mix(in srgb, var(--palette-home-note-lilac) 62%, var(--panel));--tone-b:color-mix(in srgb, var(--palette-home-note-peach) 55%, var(--panel));--tone-wash:var(--palette-home-lilac)}[data-tone=peach]{--tone-a:color-mix(in srgb, var(--palette-home-note-peach) 70%, var(--panel));--tone-b:var(--palette-home-glow-cream);--tone-wash:var(--palette-home-peach)}.stage-hero{background:radial-gradient(50% 70% at 96% 100%, var(--tone-b), transparent 72%), var(--panel);padding-block:clamp(72px,10vw,152px) clamp(56px,7vw,104px);position:relative;overflow:clip}.stage-back{background:color-mix(in srgb, var(--panel) 70%, transparent);min-height:40px;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:999px;align-items:center;gap:8px;margin-bottom:clamp(32px,5vw,56px);padding:0 16px 0 12px;font-size:.875rem;font-weight:600;display:inline-flex}.stage-back:hover{background:var(--panel)}.stage-hero-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:end;gap:32px clamp(40px,6vw,96px);display:grid}.stage-hero[data-align=stack] .stage-hero-grid,.stage-hero[data-align=name] .stage-hero-grid{grid-template-columns:minmax(0,1fr);align-items:start}.stage-hero-title .lux-label{margin-bottom:20px}.stage-title{letter-spacing:-.04em;text-wrap:balance;margin:0;font-size:clamp(3rem,7.2vw,6.5rem);font-weight:500;line-height:1.02}.stage-hero[data-align=stack] .stage-title{max-width:18ch;font-size:clamp(2.5rem,5.6vw,5rem);line-height:1.06}.stage-hero[data-align=name] .stage-title{font-size:clamp(3.5rem,9vw,8rem)}.lux-page[lang=th] .stage-title{letter-spacing:-.01em;font-size:clamp(2.25rem,5vw,4.5rem);line-height:1.3}.lux-page[lang=th] .stage-hero[data-align=name] .stage-title{font-size:clamp(2.5rem,6.4vw,5.5rem)}.stage-hero-side{align-content:end;gap:24px;display:grid}.stage-hero[data-align=stack] .stage-hero-side{max-width:760px}.stage-lead{max-width:44ch;color:var(--muted);margin:0;font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.65}.stage-facts{flex-wrap:wrap;gap:12px;margin:0;display:flex}.stage-facts>div{border-radius:var(--lux-r-md);background:color-mix(in srgb, var(--panel) 72%, transparent);min-width:0;box-shadow:inset 0 0 0 1px var(--line);gap:2px;padding:12px 20px;display:grid}.stage-facts dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600}.lux-page[lang=th] .stage-facts dt{letter-spacing:0;text-transform:none;font-size:.8125rem}.stage-facts dd{margin:0;font-size:.9375rem;font-weight:500}.stage-actions{flex-wrap:wrap;align-items:center;gap:12px 28px;display:flex}.stage-pills{flex-wrap:wrap;gap:8px;display:flex}.stage-pills a{background:color-mix(in srgb, var(--panel) 72%, transparent);min-height:40px;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:999px;align-items:center;padding:0 18px;font-size:.875rem;font-weight:600;display:inline-flex}.stage-pills a:hover{background:var(--dark);color:var(--on-dark);box-shadow:none}.stage-section{padding-block:clamp(64px,9vw,128px)}.stage-heading{grid-template-columns:minmax(0,1fr) minmax(0,24rem);align-items:end;gap:16px 64px;margin-bottom:clamp(32px,5vw,56px);display:grid}.stage-heading .lux-label{margin-bottom:16px}.stage-heading h2{letter-spacing:-.03em;margin:0;font-size:clamp(2.25rem,4.6vw,4rem);font-weight:500;line-height:1.05}.lux-page[lang=th] .stage-heading h2{letter-spacing:0;line-height:1.35}.stage-heading-side{justify-items:start;gap:12px;display:grid}.stage-heading-side p{color:var(--muted);margin:0;line-height:1.65}.stage-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.stage-chips li{background:var(--inset);border-radius:999px;padding:5px 13px;font-size:.8125rem;font-weight:500;line-height:1.5}.stage-rows h2,.stage-rows h3{letter-spacing:-.01em;margin:0;font-size:1.1875rem;font-weight:600;line-height:1.45}.stage-rows a:hover h2,.stage-rows a:hover h3{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:1px}.stage-empty{color:var(--muted);padding-block:48px}.lux-page .lux-text-link svg,.lux-page .lux-button svg{flex:none}.lux-button:focus-visible{outline-offset:3px}.chapter-list{gap:clamp(72px,10vw,152px);padding-block:clamp(56px,7vw,96px) clamp(96px,12vw,176px);display:grid}.chapter{--card-pad:clamp(16px, 2.4vw, 32px);margin-inline:calc(var(--card-pad) * -1);padding:var(--card-pad);border-radius:var(--lux-r-lg);background:var(--panel);box-shadow:0 0 0 1px color-mix(in srgb, var(--text) 5%, transparent), 0 30px 60px -40px color-mix(in srgb, var(--text) 30%, transparent);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,80px);display:grid}.chapter:nth-child(2n):not(.chapter-lead){grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}.chapter:nth-child(2n):not(.chapter-lead) .chapter-stage{order:2}.chapter-stage{aspect-ratio:4/3;border-radius:var(--lux-r-lg);background:var(--tone-wash);padding:clamp(20px,3.5vw,48px);display:block;position:relative;overflow:hidden}.chapter-shot{border-radius:var(--lux-r-md);background:var(--panel);width:100%;height:100%;box-shadow:0 0 0 1px color-mix(in srgb, var(--text) 6%, transparent), 0 24px 56px -28px color-mix(in srgb, var(--text) 40%, transparent);display:block;position:relative;overflow:hidden}.chapter-shot img{padding:6px}.chapter-shot-empty{border-radius:var(--lux-r-md);background:var(--panel);place-items:center;height:100%;font-weight:600;display:grid}.chapter-open{background:var(--dark);width:52px;height:52px;color:var(--on-dark);box-shadow:var(--float);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:clamp(28px,4vw,60px);right:clamp(28px,4vw,60px)}.chapter-stage:hover .chapter-open{background:var(--accent-hover,var(--dark))}.chapter-copy{align-content:center;justify-items:start;gap:18px;display:grid}.chapter-copy h2{letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(1.875rem,3.2vw,2.75rem);font-weight:500;line-height:1.12}.lux-page[lang=th] .chapter-copy h2{letter-spacing:0;line-height:1.4}.chapter-hook{margin:0;font-size:clamp(1.125rem,1.6vw,1.3125rem);font-weight:500;line-height:1.5}.chapter-description{max-width:52ch;color:var(--muted);margin:0;line-height:1.75}.chapter-metrics{gap:6px;margin:0;padding:0;list-style:none;display:grid}.chapter-metrics li{padding-left:18px;font-size:.9375rem;line-height:1.6;position:relative}.chapter-metrics li:before{content:"";background:var(--text);width:8px;height:1px;position:absolute;top:.7em;left:0}.chapter-actions{flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:8px;display:flex}.chapter-lead{grid-template-columns:minmax(0,1fr)}.chapter-lead .chapter-stage{aspect-ratio:16/9;padding:clamp(24px,5vw,72px) clamp(24px,7vw,120px) 0}.chapter-lead .chapter-shot{border-radius:var(--lux-r-md) var(--lux-r-md) 0 0}.chapter-lead .chapter-copy{-moz-column-gap:clamp(40px, 6vw, 96px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:clamp(40px,6vw,96px)}.chapter-lead .chapter-copy>:is(.lux-label,h2,.chapter-hook){grid-column:1}.chapter-lead .chapter-copy>:not(.lux-label,h2,.chapter-hook){grid-column:2}.chapter-lead .chapter-copy>.lux-label{grid-row:1}.chapter-lead .chapter-copy>h2{grid-row:2;font-size:clamp(2.25rem,4.4vw,3.75rem)}.chapter-lead .chapter-copy>.chapter-hook{grid-row:3/span 4}.chapter-lead .chapter-copy>.chapter-description{grid-row:1/span 2;align-self:end}.detail-gallery{padding-block:clamp(16px,3vw,40px) clamp(64px,8vw,112px)}.detail-gallery .project-gallery-stage{border-radius:var(--lux-r-lg);background:var(--palette-home-sky)}.detail-story{background:var(--home-warm);padding-block:clamp(72px,10vw,144px)}.detail-story>.lux-container>.lux-label{margin-bottom:20px}.detail-story .engineering-story-opening h2{letter-spacing:-.03em;max-width:22ch;margin:0;font-size:clamp(2rem,4.2vw,3.5rem);font-weight:500;line-height:1.15}.lux-page[lang=th] .detail-story .engineering-story-opening h2{letter-spacing:0;line-height:1.4}.detail-story .engineering-story-opening p{max-width:60ch;color:var(--muted);margin-top:20px;font-size:1.0625rem;line-height:1.75}.detail-story .engineering-story{border-radius:var(--lux-r-md);background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);margin-top:40px}.detail-story .engineering-story summary,.detail-story .engineering-story-body{padding-inline:clamp(20px,2.6vw,32px)}.detail-companion{margin-top:28px}.detail-chapters{gap:clamp(56px,7vw,96px);padding-block:clamp(72px,10vw,144px);display:grid}.detail-chapter{border-top:1px solid var(--line-strong);grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);align-items:start;gap:24px clamp(40px,6vw,96px);padding-top:32px;display:grid}.detail-chapter h2{letter-spacing:-.025em;margin:0;font-size:clamp(1.625rem,2.6vw,2.25rem);font-weight:500;line-height:1.2;position:sticky;top:32px}.lux-page[lang=th] .detail-chapter h2{letter-spacing:0;line-height:1.45}.detail-steps{counter-reset:step;gap:4px;margin:0;padding:0 0 0 4px;list-style:none;display:grid}.detail-steps li{counter-increment:step;padding:14px 0 14px 48px;font-size:1.0625rem;line-height:1.65;position:relative}.detail-steps li:before{content:counter(step, decimal-leading-zero);color:var(--muted);font-family:var(--font-family-mono);letter-spacing:.04em;font-size:.75rem;position:absolute;top:17px;left:0}.about-counterpart{color:var(--muted);margin:0;font-size:clamp(1.25rem,2vw,1.625rem)}.about-meta{border-top:1px solid var(--line-strong);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;padding-top:24px;display:flex}.about-meta .meta-line{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.about-page .stage-hero-side{max-width:none}.about-statement{padding-block:clamp(72px,10vw,152px)}.about-statement .lux-label{margin-bottom:28px}.about-statement-text{max-width:30ch;font-family:var(--lux-display);letter-spacing:-.025em;text-wrap:pretty;margin:0;font-size:clamp(1.75rem,3.4vw,3rem);font-weight:500;line-height:1.32}.lux-page[lang=th] .about-statement-text{letter-spacing:0;max-width:34ch;line-height:1.6}.about-intro{color:var(--muted);margin:32px 0 0;font-size:1.0625rem}.about-ledger{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);align-items:start;gap:clamp(40px,6vw,96px);padding-bottom:clamp(72px,10vw,144px);display:grid}.about-ledger .stage-heading{grid-template-columns:minmax(0,1fr) auto}.about-ledger .stage-heading h2{font-size:clamp(1.875rem,3vw,2.5rem)}.about-card{border-radius:var(--lux-r-lg);background:var(--home-warm);padding:clamp(24px,3vw,36px)}.about-card h2{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:.8125rem;font-weight:600}.lux-page[lang=th] .about-card h2{letter-spacing:0;text-transform:none}.about-card>p{margin:4px 0 0;line-height:1.65}.about-card dl{border-top:1px solid var(--line-strong);gap:18px;margin:28px 0 0;padding-top:24px;display:grid}.about-card dt{color:var(--muted);font-size:.8125rem}.about-card dd{overflow-wrap:anywhere;margin:2px 0 0;font-weight:500}.about-card dd a:hover{text-underline-offset:4px;text-decoration:underline}.about-card .lux-text-link{margin-top:20px}.about-toolkit{background:var(--home-warm);padding-block:clamp(72px,10vw,144px)}.about-toolkit .skill-tiles{gap:12px 28px;margin:0}.about-toolkit .skill-tiles li{background:0 0;border:0;padding:0;font-size:1rem}.contact-hero .lux-contact-card{padding-block:clamp(96px,13vw,184px)}.contact-hero h1{margin:24px 0 0;font-size:clamp(2.25rem,5.4vw,4.75rem);line-height:1.15}.lux-page[lang=th] .contact-hero h1{letter-spacing:0;font-size:clamp(2rem,4.4vw,3.75rem);line-height:1.45}.contact-counterpart{color:var(--on-dark-muted);margin:12px 0 0;font-size:1.125rem}.contact-hero .gallery-text-link{color:var(--on-dark-muted);margin-top:20px}.contact-hero .gallery-text-link:hover{color:var(--on-dark)}.contact-hero .form-feedback{min-height:1.5em;color:var(--on-dark-muted);margin:8px 0 0;font-size:.875rem}.contact-body{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,6vw,96px);padding-block:clamp(72px,10vw,144px);display:grid}.contact-context .lux-label{margin-bottom:20px}.contact-context h2{letter-spacing:-.03em;margin:0;font-size:clamp(2rem,3.8vw,3.25rem);font-weight:500;line-height:1.12}.lux-page[lang=th] .contact-context h2{letter-spacing:0;line-height:1.4}.contact-guidance{max-width:40ch;margin:24px 0 0;font-size:clamp(1.125rem,1.6vw,1.375rem);line-height:1.6}.contact-facts{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;margin:0;padding:0;list-style:none;display:grid}.contact-facts li>:is(a,svg){flex:none}.contact-facts li{border-radius:var(--lux-r-md);background:var(--home-warm);align-items:center;gap:14px;min-height:92px;padding:18px 20px;display:flex}.contact-facts li:has(>a){padding:0}.contact-facts li>a{border-radius:inherit;flex:1;align-items:center;gap:14px;min-height:92px;padding:18px 20px;display:flex}.contact-facts li>a:hover{background:var(--dark);color:var(--on-dark)}.contact-facts li>a>svg:last-child{margin-left:auto}.contact-fact{overflow-wrap:anywhere;gap:2px;min-width:0;font-weight:500;display:grid}.contact-facts small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600}.contact-facts a:hover small{color:var(--on-dark-muted)}.lux-page[lang=th] .contact-facts small{letter-spacing:0;text-transform:none;font-size:.8125rem}.lux-page.skills-page .skills-stage{padding-block:clamp(64px,8vw,128px)}.skills-stage-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(40px,6vw,88px);display:grid}.skills-stage-copy{justify-items:start;gap:28px;display:grid}.skills-stage-copy .stage-title{font-size:clamp(2.75rem,5.4vw,4.75rem);line-height:1.06}.lux-page[lang=th] .skills-stage-copy .stage-title{font-size:clamp(2.25rem,4.4vw,3.75rem);line-height:1.35}.skills-stage-facts .skill-count{letter-spacing:-.02em;font-size:1.5rem;font-weight:500}.lux-page.skills-page .skills-collection-grid{gap:20px}.lux-page.skills-page .skill-card{border-radius:var(--lux-r-lg);background:radial-gradient(90% 60% at 0% 0%, var(--tone-a), transparent 70%), var(--home-warm);box-shadow:none;border:0;gap:0;padding:clamp(24px,2.6vw,32px)}.lux-page.skills-page .skill-card:hover{box-shadow:var(--float)}.lux-page.skills-page .skill-card h3{letter-spacing:-.02em;margin:18px 0 0;font-size:1.5rem;font-weight:500}.lux-page.skills-page .skill-card-description{color:var(--muted);flex:1;margin:12px 0 20px;line-height:1.7}.lux-page.skills-page .skill-card .stage-chips li{background:color-mix(in srgb, var(--panel) 80%, transparent)}.lux-page.skills-page .skill-card-footer{justify-content:space-between;align-items:center;margin-top:24px;display:flex}.lux-page.skills-page .skill-card-number{font-family:var(--font-family-mono);color:var(--muted);font-size:.8125rem}.lux-page.skills-page .skill-card-type{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:18px 0 0;font-size:.75rem;font-weight:600}.skills-kit{background:var(--home-warm);padding-block:clamp(72px,10vw,144px)}.skills-kit .lux-container{gap:24px;display:grid}.lux-page.skills-page .skills-access{border-radius:var(--lux-r-lg);background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);border:0;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);align-items:center;gap:clamp(24px,5vw,80px);padding:clamp(24px,4vw,48px);display:grid}.lux-page.skills-page .skills-access .lux-label{align-items:center;gap:8px;margin-bottom:14px;display:inline-flex}.lux-page.skills-page .skills-access h2{letter-spacing:-.025em;margin:0;font-size:clamp(1.625rem,2.6vw,2.25rem);font-weight:500;line-height:1.2}.lux-page.skills-page .skills-access p{color:var(--muted);margin:12px 0 0;font-size:.9375rem;line-height:1.7}.lux-page.skills-page .skills-access label{margin-bottom:10px;font-size:.875rem;font-weight:600;display:block}.lux-page.skills-page .skills-bottom-note{border:0;padding:8px 4px 0}.lux-page.skills-page .skills-bottom-note p{color:var(--muted);margin:0;font-size:.875rem}.notes-index a,.search-results a{padding-block:28px}.search-page .search-form{width:min(100%,720px)}.search-page .search-form label{margin-bottom:12px;font-size:.875rem;font-weight:600;display:block}.search-page .search-input-row{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line-strong), var(--float);border-radius:999px;gap:8px;padding:6px;display:flex}.search-page .search-input-row input{min-height:48px;box-shadow:none;background:0 0;border:0;border-radius:999px;padding:0 20px}.search-page .search-input-row button{border-radius:999px}.search-count{color:var(--muted);margin:0 0 24px;font-size:.9375rem}.search-results p{font-family:var(--font-family-mono);font-size:.8125rem}.search-empty h2{margin:0;font-size:1.5rem;font-weight:500}.search-empty p{color:var(--muted);margin:12px 0 0}.status-page .stage-hero{align-items:center;min-height:72svh;display:grid}.lux-page.notes-reading{background:var(--panel)}@media (max-width:900px){.stage-hero-grid,.stage-heading,.chapter,.chapter:nth-child(2n):not(.chapter-lead),.chapter-lead .chapter-copy,.detail-chapter,.about-ledger,.contact-body,.skills-stage-grid{grid-template-columns:minmax(0,1fr)}.chapter:nth-child(2n):not(.chapter-lead) .chapter-stage{order:0}.chapter-lead .chapter-copy>*{grid-area:auto/1!important}.chapter-stage,.chapter-lead .chapter-stage{aspect-ratio:4/3;padding:18px}.chapter-lead .chapter-stage{padding-bottom:0}.chapter-open{width:44px;height:44px;bottom:28px;right:28px}.detail-chapter h2{position:static}.lux-page.skills-page .skills-access{grid-template-columns:minmax(0,1fr)}.stage-hero{padding-block:calc(var(--header-height) + 36px) 56px}.contact-hero .lux-contact-card{padding-top:calc(var(--header-height) + 56px)}.lux-page.notes-reading{padding-top:var(--header-height)}.lux-page.skills-page .skills-stage{padding-top:calc(var(--header-height) + 36px)}}@media (max-width:560px){.contact-facts{grid-template-columns:minmax(0,1fr)}.detail-steps li{padding-left:36px;font-size:1rem}.stage-facts>div{flex:100%}}.lux-page.skills-page .harness-feature{border-radius:var(--lux-r-lg);background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);border:0;margin-bottom:0}.lux-page.skills-page .harness-feature-line{background:linear-gradient(90deg, var(--palette-home-grad-blue), var(--palette-home-grad-violet), var(--palette-home-grad-pink), var(--palette-home-grad-orange))}
