@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.hidden{display:none}.italic{font-style:italic}}:root{--ink:#f0efe8;--muted:#85877f;--acid:#ff5a18;--cyan:#75fff0;--black:#060706;--font-geist-sans:Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--font-geist-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{background:var(--black);min-height:100%;color:var(--ink);margin:0}body{font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}button,a,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.portfolio-stage{isolation:isolate;background:radial-gradient(circle at 50% 45%,#17221d 0%,#0b0f0d 30%,#060706 64%),#060706;width:100%;height:100svh;min-height:680px;position:relative;overflow:hidden}.portfolio-stage:after{pointer-events:none;content:"";z-index:30;position:absolute;inset:0;box-shadow:inset 0 0 130px 28px #000}.grid-floor{z-index:0;opacity:.26;transform-origin:bottom;background-image:linear-gradient(#b4ffed38 1px,#0000 1px),linear-gradient(90deg,#b4ffed38 1px,#0000 1px);background-size:55px 55px;height:68%;position:absolute;bottom:-29%;left:-15%;right:-15%;transform:perspective(460px)rotateX(60deg);-webkit-mask-image:linear-gradient(#0000,#000 55%);mask-image:linear-gradient(#0000,#000 55%)}.corner-nav{z-index:40;width:100%;font-family:var(--font-geist-mono), monospace;letter-spacing:.14em;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 3.2vw;font-size:12px;display:grid;position:absolute;left:0}.top-nav{height:112px;top:0}.bottom-nav{height:100px;bottom:0}.nav-cluster{gap:clamp(22px,3vw,58px);display:flex}.nav-right,.social-links{justify-content:flex-end}.nav-cluster button,.wordmark,.shift-control,.panel-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0}.nav-cluster button{text-transform:uppercase;transition:color .25s,letter-spacing .25s,transform .25s;position:relative}.nav-cluster button:before{content:attr(data-ghost);color:var(--cyan);opacity:0;white-space:nowrap;mix-blend-mode:screen;position:absolute;top:0;left:0;transform:translate(0)}.nav-cluster button:after{content:"";background:var(--acid);width:0;height:1px;transition:width .25s;position:absolute;bottom:-8px;left:0}.nav-cluster button:hover,.nav-cluster button:focus-visible{color:var(--ink);letter-spacing:.2em;text-shadow:-2px 0 #ff5a18b3,2px 0 #75fff099;transform:translateY(-2px)}.nav-cluster button:hover:before{opacity:.3;animation:.5s steps(2,end) infinite nav-glitch}.nav-cluster button:hover:after,.nav-cluster button:focus-visible:after{width:100%}@keyframes nav-glitch{0%,to{clip-path:inset(0 0 70%);transform:translate(0)}33%{clip-path:inset(40% 0 20%);transform:translate(3px,-1px)}66%{clip-path:inset(75% 0 0);transform:translate(-2px,1px)}}.wordmark{color:var(--ink);letter-spacing:-.08em;align-items:center;gap:5px;font-size:15px;font-weight:800;display:flex}.wordmark i{background:var(--acid);width:9px;height:22px;display:block;transform:skew(-14deg);box-shadow:0 0 20px #ff5a188c}.hero-copy{z-index:12;pointer-events:none;opacity:.54;position:absolute;top:19%;left:4vw}.eyebrow,.panel-kicker,.scene-note,.side-status,.bottom-nav{font-family:var(--font-geist-mono), monospace}.eyebrow{color:var(--acid);letter-spacing:.2em;margin:0 0 14px;font-size:10px}.hero-copy h1{letter-spacing:-.085em;color:#0000;-webkit-text-stroke:1px #eeefe83d;max-width:6ch;margin:0;font-size:clamp(48px,6.6vw,118px);font-weight:900;line-height:.8}.hero-copy h1 span{display:block}.scene-shell{z-index:10;opacity:1;width:130vw;height:100svh;min-height:680px;position:absolute;top:50%;left:52%;transform:translate(-50%,-50%)scale(1)}.scene-card{background:0 0;position:absolute;inset:0;overflow:visible}.scene-card:after{display:none}.spline-viewer{z-index:1;pointer-events:auto;opacity:0;width:100%;height:100%;transition:opacity .55s;display:block;position:absolute;inset:0}.scene-is-ready .spline-viewer{opacity:1}.scene-scan{z-index:2;pointer-events:none;opacity:1;background:linear-gradient(90deg,#0000 0 49.95%,#75fff01f 50%,#0000 50.05%),linear-gradient(0deg,#0000 0 49.95%,#75fff014 50%,#0000 50.05%);transition:opacity .4s;position:absolute;inset:0;overflow:hidden}.scene-scan:before{content:"";opacity:0;background:linear-gradient(90deg,#0000,#75fff0f2,#0000);height:1px;animation:2.4s ease-in-out infinite scene-scan-line;position:absolute;top:5%;left:7%;right:7%;box-shadow:0 0 18px #75fff099,0 10px 36px #75fff01f}.scene-scan:after{content:"";opacity:.1;background:repeating-linear-gradient(#0000 0 5px,#e2fffa52 6px,#0000 7px);position:absolute;inset:0}.scene-loading{z-index:4;color:#f0efe8b3;font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;pointer-events:none;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0607066b;border:1px solid #75fff029;align-items:center;gap:9px;padding:9px 12px;font-size:8px;transition:opacity .35s,transform .35s;display:flex;position:absolute;bottom:13%;left:50%;transform:translate(-50%)}.scene-loading i{background:var(--cyan);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite scene-loading-pulse;box-shadow:0 0 10px #75fff0cc}.scene-has-failed .scene-loading{color:#ffbe9cd9;border-color:#ff5a1840}.scene-has-failed .scene-loading i{background:var(--acid);box-shadow:0 0 10px #ff5a18cc}.scene-is-ready .scene-scan{opacity:0}.scene-is-ready .scene-loading{opacity:0;transform:translate(-50%,8px)}@keyframes scene-scan-line{0%{opacity:0;transform:translateY(0)}12%,82%{opacity:.9}to{opacity:0;transform:translateY(88svh)}}@keyframes scene-loading-pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.spline-brand-cover{z-index:3;pointer-events:none;opacity:0;background:radial-gradient(at 100% 100%,#060706 0 42%,#060706f5 58%,#06070694 76%,#0000 100%);width:220px;height:108px;transition:opacity .35s;position:absolute;bottom:0;right:0}.scene-is-ready .spline-brand-cover{opacity:1}.scene-note{z-index:3;color:var(--muted);text-align:right;letter-spacing:.18em;pointer-events:none;margin:0;font-size:9px;line-height:1.7;position:absolute;bottom:16%;right:3.2vw}.scene-note span{color:var(--cyan);display:block}.side-status{z-index:32;color:#c5c5be;letter-spacing:.16em;font-size:9px;line-height:1.65;position:absolute;top:53%}.side-status span{color:#5c5f59;display:block}.status-left{left:3.2vw}.status-right{text-align:right;max-width:20ch;right:3.2vw}.shift-control{letter-spacing:.15em;align-items:center;gap:10px;font-size:10px;display:flex}.shift-control>i{border:1px solid #74766f;border-radius:99px;width:32px;height:14px;padding:2px}.shift-control i span{background:var(--ink);border-radius:50%;width:8px;height:8px;transition:transform .25s,background .25s;display:block}.shift-control.is-on i span{background:var(--acid);transform:translate(17px)}.bottom-nav>p{color:#484b47;margin:0;font-size:9px}.social-links{gap:10px;display:flex}.social-links a{width:34px;height:34px;color:var(--ink);border:1px solid #424640;border-radius:50%;place-items:center;text-decoration:none;transition:border-color .25s,color .25s,transform .25s;display:grid}.social-links a:hover{color:var(--acid);border-color:var(--acid);transform:translateY(-3px)}.social-links span{font-size:9px;font-weight:700}.freeze-mode .spline-viewer{pointer-events:none}.panel-backdrop{z-index:42;visibility:hidden;opacity:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000007a;border:0;transition:opacity .35s,visibility .35s;position:absolute;inset:0}.panel-backdrop.is-visible{visibility:visible;opacity:1}.content-panel{z-index:45;visibility:hidden;color:#20221f;background:#ecebe3;width:min(620px,92vw);height:100%;transition:transform .45s cubic-bezier(.72,0,.2,1),visibility .45s;position:absolute;top:0;right:0;overflow-y:auto;transform:translate(100%)}.content-panel.from-left{left:0;right:auto;transform:translate(-100%)}.content-panel.from-left.is-visible{animation:.45s cubic-bezier(.72,0,.2,1) panel-in-from-left}.content-panel.is-visible{visibility:visible;transform:none}@keyframes panel-in-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.panel-close{z-index:60;width:32px;height:32px;position:absolute;top:32px;right:32px}.panel-close span{background:currentColor;width:26px;height:1px;position:absolute;top:15px;left:3px}.panel-close span:first-child{transform:rotate(45deg)}.panel-close span:last-child{transform:rotate(-45deg)}.panel-content{min-height:100%;padding:92px 48px 64px}.panel-kicker{color:#dd4c14;letter-spacing:.2em;margin:0 0 24px;font-size:9px}.panel-content h2,.article-view h2{letter-spacing:-.06em;margin:0;font-size:clamp(42px,7vw,74px);line-height:.95}.project-list,.post-list{border-top:1px solid #c9c8c0;margin-top:50px}.project-list button,.post-list button{color:#20221f;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #c9c8c0;align-items:center;width:100%;padding:17px 0;transition:color .25s,padding .25s;display:grid}.project-list button{grid-template-columns:38px 1fr auto 20px}.project-list button:hover,.post-list button:hover{color:#dd4c14;padding-left:8px}.project-list span,.project-list small,.post-list span,.post-list small,.post-list time,.panel-footnote{color:#74766f;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;font-size:8px}.project-list strong{letter-spacing:-.02em;font-size:19px}.project-list b,.post-list b{font-weight:400}.panel-footnote{margin-top:18px}.text-panel h2{font-size:clamp(40px,6vw,64px)}.large-copy{color:#4f524c;margin:50px 0 0;font-size:18px;line-height:1.65}.profile-panel h2{white-space:pre-line}.profile-section{border-top:1px solid #c9c8c0;margin-top:46px;padding-top:14px}.profile-section>span{color:#888b84;font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;font-size:8px}.profile-lines{margin-top:18px}.profile-lines p{border-bottom:1px solid #c9c8c0ad;grid-template-columns:34px 1fr;margin:0;padding:12px 0;font-size:15px;line-height:1.45;display:grid}.profile-lines b{color:#a09f97;font-family:var(--font-geist-mono), monospace;font-size:8px;font-weight:400}.profile-experience p{color:#4f524c;display:block}.facts{font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;grid-template-columns:78px 1fr;gap:12px 18px;margin-top:45px;font-size:9px;display:grid}.facts span{color:#888b84}.facts p{margin:0}.contact-link{color:#20221f;border-bottom:1px solid #c9c8c0;justify-content:space-between;align-items:center;padding:17px 0;font-size:clamp(17px,2vw,25px);text-decoration:none;display:flex}.text-panel h2+.contact-link{border-top:1px solid #c9c8c0;margin-top:50px}.contact-link:hover{color:#dd4c14}.contact-note{color:#74766f;margin-top:24px;font-size:12px}.post-list button{grid-template-columns:34px 1fr 72px 20px}.post-list strong,.post-list small{display:block}.post-list strong{letter-spacing:-.02em;font-size:17px}.post-list small{letter-spacing:0;margin-top:6px;line-height:1.45}.article-view{z-index:55;color:#20221f;background:#ecebe3;animation:.35s ease-out article-in;position:absolute;inset:0;overflow-y:auto}@keyframes article-in{0%{opacity:0;transform:translateY(16px)}}.article-view .panel-close{color:#20221f;position:fixed}.article-inner{min-height:100%;padding:92px clamp(28px,5vw,76px) 70px}.article-header{border-bottom:1px solid #c9c8c0;padding-bottom:clamp(36px,6vw,82px)}.article-view h2{max-width:14ch;font-size:clamp(42px,7vw,96px)}.article-meta{color:#85877f;font-family:var(--font-geist-mono), monospace;letter-spacing:.14em;justify-content:space-between;gap:20px;margin-top:34px;font-size:8px;display:flex}.project-cover{object-fit:cover;background:#d9d8cf;border-radius:4px;width:100%;max-height:78vh;margin:clamp(38px,7vw,90px) 0 0;display:block}.project-view .article-lead{margin-top:clamp(48px,8vw,110px)}.article-lead,.article-body{width:min(720px,100%);margin-left:auto}.article-lead{color:#20221f;margin-top:10vh;font-size:clamp(20px,2.4vw,32px);line-height:1.5}.article-body{color:#60635c;margin-top:48px;font-size:17px;line-height:1.95}.article-body>:first-child{margin-top:0}.article-rich p{margin:0 0 1.35em}.article-rich h2,.article-rich h3,.article-rich h4{color:#20221f;letter-spacing:-.045em;max-width:none;margin:1.8em 0 .7em;line-height:1.15}.article-rich h2{font-size:clamp(34px,5vw,58px)}.article-rich h3{font-size:clamp(25px,3.4vw,38px)}.article-rich h4{font-size:21px}.article-rich blockquote{color:#343630;border-left:3px solid #dd4c14;margin:2em 0;padding:.4em 0 .4em 1.5em;font-size:1.14em}.article-rich ul,.article-rich ol{margin:1.4em 0;padding-left:1.35em}.article-rich li{margin:.5em 0}.article-rich a{color:#cf4611;text-underline-offset:3px;text-decoration-thickness:1px}.article-rich img{border-radius:4px;width:auto;max-width:100%;height:auto;margin:clamp(34px,6vw,72px) auto;display:block}.article-rich figure{margin:clamp(34px,6vw,72px) 0}.article-rich figure img{margin:0 auto}.article-rich figcaption{color:#92948c;text-align:center;margin-top:12px;font-size:11px}.article-rich hr{border:0;border-top:1px solid #c9c8c0;margin:56px 0}.article-footer{color:#8b8d85;width:min(720px,100%);font-family:var(--font-geist-mono), monospace;letter-spacing:.14em;border-top:1px solid #c9c8c0;justify-content:space-between;align-items:center;margin:80px 0 0 auto;padding-top:24px;font-size:8px;display:flex}.article-footer button{color:#20221f;font:inherit;letter-spacing:inherit}@media (max-width:780px){.portfolio-stage{min-height:620px}.corner-nav{padding-left:20px;padding-right:20px}.top-nav{height:86px}.nav-cluster{gap:14px}.nav-cluster button{letter-spacing:.04em;font-size:10px}.nav-right button:first-child{display:none}.wordmark{font-size:12px}.wordmark i{width:7px;height:17px}.hero-copy{top:20%;left:20px}.hero-copy h1{font-size:14vw}.scene-shell{width:100vw;height:100svh;top:50%;left:50%}.scene-note{bottom:12%;right:20px}.spline-brand-cover{width:150px;height:82px}.side-status{display:none}.bottom-nav{grid-template-columns:1fr auto;height:75px}.bottom-nav>p{display:none}.social-links{grid-column:2}.panel-content,.article-inner{padding:90px 24px 60px}.article-view h2{font-size:clamp(36px,10vw,58px)}.article-lead{margin-top:60px}.article-body{font-size:16px}.project-list button{grid-template-columns:34px 1fr 20px}.project-list small{display:none}.post-list button{grid-template-columns:30px 1fr 20px}.post-list time{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
