:root{--bg:#030304;--bg-2:#09090a;--bg-3:#111113;--line:#ffffff1f;--line-2:#fff3;--line-strong:#ffffff52;--ink:#f5f5f7;--ink-2:#f5f5f7bd;--ink-3:#f5f5f780;--ink-4:#f5f5f73d;--accent:#f7f3ea;--accent-soft:#f7f3ea8c;--hot:#f7f3ea;--font:ui-sans-serif, -apple-system, "SF Pro Display", "Inter", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", sans-serif;--mono:"JetBrains Mono", "SF Mono", "IBM Plex Mono", "Menlo", monospace;--t-xs:11px;--t-sm:13px;--t-md:15px;--t-lg:18px;--t-xl:22px;--t-2xl:28px;--t-3xl:36px;--t-4xl:48px;--t-5xl:64px;--t-display:clamp(2.6rem, 9vw, 8.5rem);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-14:56px;--s-16:64px;--s-20:80px;--s-24:96px;--s-32:128px;--s-40:160px;--e-out:cubic-bezier(.16, 1, .3, 1);--e-smooth:cubic-bezier(.4, 0, .2, 1);--e-snap:cubic-bezier(.7, 0, .2, 1);--r-1:2px;--r-2:6px;--r-3:14px;--max:1440px;--gutter:clamp(20px, 4vw, 56px);--nav-h:72px}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"ss01", "cv11", "tnum"}html,body{background:var(--bg);color:var(--ink)}body{font-family:var(--font);font-size:var(--t-md);letter-spacing:0;cursor:none;line-height:1.6;overflow-x:hidden}@media (pointer:coarse){body{cursor:auto}}::selection{background:var(--ink);color:var(--bg)}img,video,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}a:focus-visible,button:focus-visible,summary:focus-visible{outline:1px solid var(--ink);outline-offset:4px}section{scroll-margin-top:calc(var(--nav-h) + 16px)}.container{width:100%;max-width:var(--max);padding:0 var(--gutter);margin:0 auto}.reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:0;transition:opacity .6s var(--e-out), transform .6s var(--e-out);will-change:opacity, transform}.reveal{transform:translateY(28px)}.reveal-left{transform:translate(-40px)}.reveal-right{transform:translate(40px)}.reveal-scale{transform:scale(.96)}@media (width<=599px){.reveal-left,.reveal-right{transform:translateY(24px)}}.reveal.is-visible,.reveal-left.is-visible,.reveal-right.is-visible,.reveal-scale.is-visible{opacity:1;transform:none}.custom-cursor{border:1px solid var(--ink);pointer-events:none;z-index:9998;width:28px;height:28px;transition:width .35s var(--e-out), height .35s var(--e-out), background .3s, border-color .3s, opacity .3s;border-radius:50%;place-items:center;display:grid;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.custom-cursor.is-hover{background:#f5f5f70d;width:56px;height:56px}.custom-cursor.has-word{background:var(--ink);border-color:var(--ink);width:76px;height:76px}.custom-cursor.is-text{background:var(--ink);border-color:#0000;border-radius:0;width:4px;height:22px}.custom-cursor-label{font-family:var(--font);letter-spacing:.4px;color:var(--bg);opacity:0;transition:opacity .18s var(--e-out), transform .22s var(--e-out);pointer-events:none;white-space:nowrap;font-size:12px;font-weight:500;transform:scale(.8)}.custom-cursor.has-word .custom-cursor-label{opacity:1;transform:scale(1)}.custom-cursor.is-text .custom-cursor-label{display:none}.custom-cursor-dot{background:var(--ink);pointer-events:none;z-index:9999;border-radius:50%;width:4px;height:4px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.loader{z-index:200;background:var(--bg);transition:opacity .4s var(--e-out), visibility .4s;place-items:center;display:grid;position:fixed;inset:0}.loader.is-done{opacity:0;visibility:hidden;pointer-events:none}.loader-mark{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.3em;color:var(--ink-3);text-transform:uppercase;align-items:center;gap:var(--s-4);flex-direction:column;display:flex}.loader-bar{background:var(--line);width:240px;height:1px;position:relative;overflow:hidden}.loader-bar:after{content:"";background:var(--ink);width:0;animation:loadFill .4s var(--e-out) forwards;position:absolute;inset:0}.loader-num{font-variant-numeric:tabular-nums;color:var(--ink);font-size:var(--t-sm);letter-spacing:.16em}@keyframes loadFill{to{width:100%}}.scroll-progress{z-index:110;pointer-events:none;height:1px;position:fixed;top:0;left:0;right:0}.scroll-progress-bar{background:var(--ink);transform-origin:0;height:100%;transition:transform 50ms linear;transform:scaleX(0)}.section-eyebrow{align-items:center;gap:var(--s-3);font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s-6);display:inline-flex}.section-eyebrow:before{content:"";background:var(--line-strong);width:24px;height:1px}.section-title{font-family:var(--font);letter-spacing:0;color:var(--ink);max-width:22ch;font-size:clamp(1.9rem,4.6vw,3.6rem);font-weight:500;line-height:1.05}.btn{align-items:center;gap:var(--s-3);border:1px solid var(--line-2);color:var(--ink);font-size:var(--t-sm);letter-spacing:.06em;transition:color .4s var(--e-out), border-color .4s;isolation:isolate;background:0 0;border-radius:999px;padding:14px 22px;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";background:var(--ink);transform-origin:bottom;transition:transform .5s var(--e-out);z-index:-1;position:absolute;inset:0;transform:scaleY(0)}.btn:hover{color:var(--bg);border-color:var(--ink)}.btn:hover:before{transform-origin:top;transform:scaleY(1)}.btn svg{width:14px;height:14px;transition:transform .4s var(--e-out)}.btn:hover svg{transform:translate(4px)}[data-magnetic]{transition:transform .4s var(--e-out);will-change:transform}.click-ripple{border:1px solid var(--ink);pointer-events:none;z-index:9997;opacity:.6;width:8px;height:8px;animation:clickRipple .6s var(--e-out) forwards;border-radius:50%;margin:-4px 0 0 -4px;position:fixed}@keyframes clickRipple{to{opacity:0;transform:scale(14)}}[data-clip-reveal]{clip-path:inset(100% 0 0);transition:clip-path .9s var(--e-out);will-change:clip-path}[data-clip-reveal].is-revealed{clip-path:inset(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.loader-bar:after{width:100%;animation:none}.click-ripple{display:none}[data-clip-reveal]{clip-path:none}}.site-nav{z-index:100;height:var(--nav-h);padding:0 var(--gutter);transition:background .5s var(--e-smooth), backdrop-filter .5s var(--e-smooth), border-color .5s var(--e-smooth);border-bottom:1px solid #0000;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.site-nav.is-scrolled{-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--line);background:#0b0b0db3}.nav-inner{width:100%;max-width:var(--max);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.nav-logo{align-items:center;gap:var(--s-3);letter-spacing:0;color:var(--ink);font-size:14px;font-weight:600;display:inline-flex}.nav-logo img{object-fit:contain;width:22px;height:22px}.nav-logo span{align-items:baseline;gap:6px;display:inline-flex}.nav-logo .logo-accent{font-family:var(--mono);color:var(--ink-3);letter-spacing:.18em;text-transform:uppercase;font-size:11px;font-weight:400}.nav-menu{align-items:center;gap:var(--s-8);display:none}@media (width>=900px){.nav-menu{display:flex}}.nav-link{color:var(--ink-2);letter-spacing:.02em;padding:8px 0;font-size:13px;font-weight:400;transition:color .3s;position:relative}.nav-link:after{content:"";background:var(--ink);width:0;height:1px;transition:width .4s var(--e-out);position:absolute;bottom:4px;left:0}.nav-link:hover,.nav-link.is-active{color:var(--ink)}.nav-link:hover:after,.nav-link.is-active:after{width:100%}.nav-cta{display:none}@media (width>=900px){.nav-cta{align-items:center;gap:var(--s-2);border:1px solid var(--line-2);color:var(--ink);margin-left:var(--s-6);border-radius:999px;padding:8px 16px;font-size:13px;transition:background .4s,color .4s,border-color .4s;display:inline-flex}.nav-cta:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.nav-cta .dot{background:var(--hot);border-radius:50%;width:6px;height:6px}}.nav-toggle{z-index:101;flex-direction:column;gap:5px;padding:8px;display:flex}@media (width>=900px){.nav-toggle{display:none}}.nav-toggle span{background:var(--ink);width:22px;height:1px;transition:transform .4s var(--e-out), opacity .3s;transform-origin:50%;display:block}.nav-toggle.is-open span:first-child{transform:translateY(6px)rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.nav-menu-mobile{background:var(--bg);justify-content:center;align-items:flex-start;gap:var(--s-6);padding:0 var(--gutter);opacity:0;visibility:hidden;z-index:99;flex-direction:column;transition:opacity .5s,visibility .5s;display:flex;position:fixed;inset:0}.nav-menu-mobile.is-open{opacity:1;visibility:visible}.nav-menu-mobile a{font-family:var(--font);letter-spacing:0;color:var(--ink);font-size:clamp(2rem,8vw,3.5rem);font-weight:500;transition:color .3s}.nav-menu-mobile a:hover{color:var(--ink-2)}.hero{min-height:auto;padding-top:var(--nav-h);flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.hero-grid{z-index:0;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.6;background-position:-1px -1px;background-size:96px 96px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 30%,#000 30%,#0000 80%);mask-image:radial-gradient(80% 60% at 50% 30%,#000 30%,#0000 80%)}.hero-halo{pointer-events:none;z-index:0;background:radial-gradient(circle,#ffffff12 0%,#0000 60%);width:70vw;max-width:900px;height:70vw;max-height:900px;position:absolute;top:18%;left:50%;transform:translate(-50%)}.hero-canvas{z-index:1;pointer-events:none;position:absolute;inset:0}.hero-content{z-index:2;width:100%;max-width:var(--max);padding:var(--s-12) var(--gutter) var(--s-10);margin:0 auto;position:relative}@media (width>=900px){.hero-content{padding:var(--s-16) var(--gutter) var(--s-14)}}.hero-meta-top{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s-8);justify-content:space-between;align-items:center;display:flex}.hero-meta-top>div{gap:var(--s-6);display:flex}.hero-meta-top span{align-items:center;gap:var(--s-2);display:inline-flex}.hero-meta-top .pulse-dot{background:#4ade80;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #4ade80b3}@media (width<=760px){.hero-meta-top>div:last-child{display:none}}.hero-title{font-family:var(--font);font-size:var(--t-display);letter-spacing:0;color:var(--ink);font-weight:500;line-height:.96}.hero-title>span{display:block;overflow:hidden}.hero-title .hero-line-inner{will-change:transform;display:inline-block}.hero-title em{font-family:var(--font);color:var(--ink-2);letter-spacing:0;font-style:normal;font-weight:500}.hero-title .accent-mark{color:var(--ink);display:inline-block;position:relative}.hero-visuals{gap:var(--s-3);margin-bottom:var(--s-8);grid-template-columns:repeat(2,minmax(0,1fr));max-width:520px;display:grid}@media (width<=760px){.hero-visuals{max-width:100%;margin-bottom:var(--s-6)}}.hero-visual{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);border-radius:var(--r-1);opacity:.9;width:100%}.hero-row{gap:var(--s-6);margin-top:var(--s-6);grid-template-columns:1fr;display:grid}@media (width>=900px){.hero-row{grid-template-columns:1fr auto;align-items:flex-end}}.hero-tag{margin-top:var(--s-5);font-family:var(--font);font-size:var(--t-md);letter-spacing:0;color:var(--ink-2);max-width:56ch;font-weight:400;line-height:1.6;display:inline-block}.hero-subtitle{font-size:var(--t-md);color:var(--ink-2);max-width:56ch;line-height:1.7}.hero-cta-row{gap:var(--s-3);flex-wrap:wrap;display:flex}.hero-bottom{z-index:2;border-top:1px solid var(--line);padding:var(--s-4) 0;position:relative}.hero-bottom .container{justify-content:space-between;align-items:center;gap:var(--s-6);flex-wrap:wrap;display:flex}.hero-marquee{flex:auto;min-width:0;max-width:100%;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 8% 92%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 8% 92%,#0000 100%)}.hero-marquee-track{gap:var(--s-10);padding-right:var(--s-10);font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;will-change:transform;flex-wrap:nowrap;animation:32s linear infinite marqueeScroll;display:inline-flex}.hero-marquee-track span{align-items:center;gap:var(--s-3);flex-shrink:0;display:inline-flex}.hero-marquee-track span:before{content:"";background:var(--ink-3);border-radius:50%;width:4px;height:4px}@keyframes marqueeScroll{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.hero-marquee-track{animation:none}}.hero-stats{gap:var(--s-8);display:flex}.hero-stats .stat{flex-direction:column;gap:2px;display:flex}.hero-stats .stat-num{font-family:var(--mono);font-size:var(--t-lg);color:var(--ink);letter-spacing:0;font-variant-numeric:tabular-nums}.hero-stats .stat-label{font-family:var(--mono);color:var(--ink-3);letter-spacing:.18em;text-transform:uppercase;font-size:10px}.hero-scroll{bottom:var(--s-8);right:var(--gutter);align-items:center;gap:var(--s-3);z-index:2;flex-direction:column;display:flex;position:absolute}.hero-scroll span{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);writing-mode:vertical-rl;font-size:10px}.hero-scroll .scroll-line{background:linear-gradient(to bottom, var(--ink-3), transparent);width:1px;height:56px;position:relative;overflow:hidden}.hero-scroll .scroll-line:after{content:"";background:var(--ink);animation:2.4s ease-in-out infinite scrollPulse;position:absolute;inset:0;transform:translateY(-100%)}@media (width<=760px){.hero-scroll{display:none}}@keyframes scrollPulse{0%{transform:translateY(-100%)}60%,to{transform:translateY(200%)}}.manifesto{padding:var(--s-20) 0;border-top:1px solid var(--line);position:relative}@media (width>=900px){.manifesto{padding:var(--s-24) 0}}.manifesto-grid{gap:var(--s-8);grid-template-columns:1fr;max-width:880px;display:grid}.manifesto-quote{font-family:var(--font);letter-spacing:-.01em;color:var(--ink);font-size:clamp(1.6rem,3.4vw,2.6rem);font-weight:400;line-height:1.2}.manifesto-quote s{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-4);text-decoration-color:var(--ink-4);color:var(--ink-3)}.manifesto-body{margin-top:var(--s-6);font-size:var(--t-md);color:var(--ink-2);max-width:56ch;line-height:1.85}.journal{padding:var(--s-20) 0;border-top:1px solid var(--line);position:relative}@media (width>=900px){.journal{padding:var(--s-24) 0}}.journal-head{max-width:880px;margin-bottom:var(--s-12)}.journal-head .section-title{margin-top:var(--s-3)}.journal-list{gap:var(--s-12);grid-template-columns:1fr;display:grid}@media (width>=900px){.journal-list{gap:var(--s-10);grid-template-columns:repeat(3,1fr)}}.journal-post{border-top:1px solid var(--line);padding-top:var(--s-6);gap:var(--s-4);flex-direction:column;display:flex}.journal-post-meta{align-items:center;gap:var(--s-3);font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;display:flex}.journal-post-meta .journal-no{color:var(--ink);font-variant-numeric:tabular-nums}.journal-post-meta .journal-date{text-transform:none;letter-spacing:.08em;margin-left:auto}.journal-title{font-family:var(--font);letter-spacing:-.01em;color:var(--ink);max-width:22ch;font-size:clamp(1.25rem,2vw,1.55rem);font-weight:500;line-height:1.25}.journal-body{font-size:var(--t-md);color:var(--ink-2);max-width:38ch;line-height:1.85}.services{padding:var(--s-20) 0;border-top:1px solid var(--line);position:relative}@media (width>=900px){.services{padding:var(--s-24) 0}}.services-layout{gap:var(--s-10);grid-template-columns:1fr;display:grid}.services-head{max-width:760px}.services-list{gap:var(--s-6);grid-template-columns:1fr;display:grid}@media (width<=599px){.services-list{gap:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=760px){.services-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.services-list{gap:var(--s-8);grid-template-columns:repeat(4,minmax(0,1fr))}}.service-card{gap:var(--s-4);padding:var(--s-3);border:1px solid var(--line);background:#ffffff08;grid-template-columns:1fr;min-height:0;display:grid}.service-card img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-1);width:100%}@media (width<=599px){.service-card img{aspect-ratio:1}}.service-card .service-index{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.service-card h3{color:var(--ink);font-size:clamp(1.05rem,1.8vw,1.35rem);font-weight:500;line-height:1.2}.service-card p{color:var(--ink-2);font-size:var(--t-sm);-webkit-line-clamp:4;line-height:1.65;display:-webkit-box}@media (width>=1100px){.service-card p{-webkit-line-clamp:5}}.service-card p{-webkit-box-orient:vertical;overflow:hidden}@media (width<=599px){.service-card{gap:var(--s-2);padding:var(--s-2)}.service-card h3{font-size:.98rem;line-height:1.22}.service-card p{-webkit-line-clamp:3;font-size:12px;line-height:1.55}}.works{padding:var(--s-20) 0;border-top:1px solid var(--line);position:relative}@media (width>=900px){.works{padding:var(--s-24) 0}}.works-shell{gap:var(--s-8);display:grid}.works-head{max-width:760px}.works-toolbar{justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-4) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex}.works-filters{gap:var(--s-2);flex-wrap:wrap;display:flex}.filter-chip{border:1px solid var(--line);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);border-radius:999px;padding:7px 12px;font-size:10px;transition:color .3s,border-color .3s,background .3s}.filter-chip:hover{border-color:var(--line-2);color:var(--ink)}.filter-chip.is-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.works-helper{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;font-size:10px}@media (width<=760px){.works-helper{display:none}}.works-stage{gap:var(--s-8);grid-template-columns:1fr;display:grid}@media (width>=900px){.works-stage{gap:var(--s-12);grid-template-columns:minmax(280px,.9fr) minmax(0,1.6fr)}}.works-list{scrollbar-width:thin;flex-direction:column;max-height:min(72vh,920px);padding-right:2px;display:flex;overflow:auto}@media (width>=900px){.works-list{border-right:1px solid var(--line);padding-right:var(--s-8)}}@media (width<=899px){.works-list{max-height:420px}}.works-list-item{align-items:center;gap:var(--s-4);padding:var(--s-5) 0;border-bottom:1px solid var(--line);cursor:pointer;transition:padding .4s var(--e-out);text-align:left;width:100%;color:var(--ink-2);grid-template-columns:40px 1fr auto;display:grid;position:relative}.works-list-item:before{content:"";background:var(--ink);width:0;transition:width .5s var(--e-out);position:absolute;top:0;bottom:0;left:0}.works-list-item:hover,.works-list-item.is-active{padding-left:var(--s-4);color:var(--ink)}.works-list-item.is-active:before{width:2px}.works-list-item.is-hidden{display:none}.works-list-item .item-no{font-family:var(--mono);letter-spacing:.16em;color:var(--ink-3);font-size:11px}.works-list-item .item-title{font-size:var(--t-md);letter-spacing:0;color:inherit;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-weight:500;line-height:1.4;display:-webkit-box;overflow:hidden}.works-list-item .item-tag{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:10px}.works-list-empty{padding:var(--s-12) 0;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);text-align:center;font-size:11px;display:none}.works-list-empty.is-visible{display:block}.works-reader{max-width:100%;position:relative}@media (width<=899px){.works-reader{overflow:hidden}}@media (width>=900px){.works-reader{align-self:start;max-height:calc(100vh - 128px);position:sticky;top:96px;overflow:hidden}}.reader-frame{border-radius:var(--r-2);background:var(--bg-3);border:1px solid var(--line);aspect-ratio:4/3;cursor:pointer;width:100%;transition:border-color .4s;position:relative;overflow:hidden}@media (width<=899px){.reader-frame{aspect-ratio:16/10;max-height:240px}}.reader-frame:hover{border-color:var(--line-2)}.reader-image{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .35s var(--e-out);position:absolute;inset:0}.reader-image.is-active{opacity:1}.reader-frame:after{content:"";pointer-events:none;background:linear-gradient(#0000 50%,#00000080 100%);position:absolute;inset:0}.reader-corner{top:var(--s-4);right:var(--s-4);z-index:2;align-items:center;gap:var(--s-2);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:#000000b3;border:1px solid #ffffff2e;border-radius:999px;padding:6px 12px;font-size:10px;display:inline-flex;position:absolute}.reader-corner svg{width:12px;height:12px}@media (width<=899px){.reader-corner{top:var(--s-3);right:var(--s-3);padding:5px 10px}}.reader-info{margin-top:var(--s-6);gap:var(--s-4);grid-template-columns:1fr;display:grid}@media (width>=600px){.reader-info{gap:var(--s-8);grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);align-items:start}}@media (width<=599px){.reader-info{gap:var(--s-3)}}.reader-block{min-width:0;min-height:160px;position:relative;overflow:hidden}.reader-pane{display:none}.reader-pane.is-active{display:block}.reader-tag{align-items:center;gap:var(--s-2);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s-3);font-size:10px;display:inline-flex}.reader-tag:before{content:"";background:var(--line-strong);width:18px;height:1px}.reader-title{letter-spacing:0;color:var(--ink);margin-bottom:var(--s-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(1.4rem,2.5vw,2rem);font-weight:500;line-height:1.18;display:-webkit-box;overflow:hidden}.reader-subtitle{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s-4);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.reader-desc{font-size:var(--t-sm);color:var(--ink-2);margin-bottom:var(--s-5);-webkit-line-clamp:4;-webkit-box-orient:vertical;line-height:1.75;display:-webkit-box;overflow:hidden}@media (width<=599px){.reader-desc{-webkit-line-clamp:3;margin-bottom:var(--s-4)}}.reader-cta{align-items:center;gap:var(--s-2);border:1px solid var(--line-2);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:background .4s var(--e-out), color .4s, border-color .4s;background:0 0;border-radius:999px;padding:10px 18px;font-size:11px;display:inline-flex}.reader-cta:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.reader-cta svg{width:12px;height:12px;transition:transform .4s}.reader-cta:hover svg{transform:translate(2px,-2px)}@media (width<=599px){.reader-cta{justify-content:center;width:100%}}.reader-meta{gap:var(--s-4);min-width:0;display:grid}.reader-meta-card{padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-2);background:#ffffff09;display:none}.reader-meta-card.is-active{grid-template-columns:1fr;gap:6px;display:grid}.reader-meta-card span{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-top:var(--s-2);font-size:10px}.reader-meta-card span:first-child{margin-top:0}.reader-meta-card strong{font-size:var(--t-sm);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1.5;overflow:hidden}@media (width<=599px){.reader-meta-card{padding:var(--s-4)}}.project-modal{z-index:200;opacity:0;visibility:hidden;transition:opacity .5s var(--e-out), visibility .5s;place-items:center;display:grid;position:fixed;inset:0}.project-modal.is-open{opacity:1;visibility:visible}.project-modal-backdrop{background:#030304eb;position:absolute;inset:0}.project-modal-shell{background:var(--bg);border:1px solid var(--line);width:min(100%,1200px);max-height:min(92vh,920px);transition:transform .55s var(--e-out);grid-template-rows:auto 1fr;display:grid;position:relative;overflow:hidden;transform:translateY(18px)scale(.99)}@media (width>=900px){.project-modal-shell{border-radius:var(--r-2);width:min(94vw,1200px)}}@media (width<=899px){.project-modal-shell{width:100%;height:100dvh;max-height:100dvh}}.project-modal.is-open .project-modal-shell{transform:translateY(0)scale(1)}.project-modal-topbar{padding:var(--s-4) var(--s-6);border-bottom:1px solid var(--line);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);background:var(--bg-2);justify-content:space-between;align-items:center;font-size:11px;display:flex}.project-modal-topbar .topbar-id{color:var(--ink)}.project-modal-topbar .topbar-meta{gap:var(--s-6);display:flex}.project-modal-topbar .topbar-client{text-overflow:ellipsis;white-space:nowrap;max-width:24ch;overflow:hidden}.project-modal-topbar .topbar-keys{text-align:center;letter-spacing:.18em;color:var(--ink-3);flex:1;font-size:10px}@media (width<=1100px){.project-modal-topbar .topbar-keys{display:none}}@media (width<=760px){.project-modal-topbar .topbar-meta{display:none}}.project-modal-close{border:1px solid var(--line-2);background:var(--bg);width:36px;height:36px;color:var(--ink);z-index:10;transition:background .3s, color .3s, transform .4s var(--e-out);border-radius:50%;place-items:center;display:grid;position:absolute;top:12px;right:12px}.project-modal-close:hover{background:var(--ink);color:var(--bg);transform:rotate(90deg)}.project-modal-close svg{width:14px;height:14px}.project-modal-body{scrollbar-width:thin;grid-template-columns:1fr;max-height:calc(min(92vh,920px) - 88px);display:grid;overflow-y:auto}@media (width>=900px){.project-modal-body{grid-template-columns:1.35fr 1fr}}@media (width<=899px){.project-modal-body{max-height:calc(100dvh - 72px)}}.project-modal-gallery{background:var(--bg-3);min-height:300px;position:relative}@media (width>=900px){.project-modal-gallery{height:100%;min-height:560px}}@media (width<=899px){.project-modal-gallery{min-height:160px}}.gallery-main{height:100%;overflow:hidden}.gallery-main img{object-fit:cover;width:100%;height:100%;min-height:300px;transition:opacity .3s}@media (width>=900px){.gallery-main img{min-height:560px}}@media (width<=899px){.gallery-main img{min-height:160px;max-height:28vh}}.gallery-counter{top:var(--s-4);left:var(--s-4);font-family:var(--mono);letter-spacing:.18em;background:#00000085;border:1px solid #ffffff29;border-radius:999px;padding:6px 12px;font-size:10px;position:absolute}.gallery-nav{width:42px;height:42px;color:var(--ink);z-index:4;background:#00000085;border:1px solid #ffffff29;border-radius:50%;place-items:center;transition:background .3s,color .3s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-nav:hover{background:var(--ink);color:var(--bg)}.gallery-nav.gallery-prev{left:var(--s-4)}.gallery-nav.gallery-next{right:var(--s-4)}.gallery-nav svg{width:16px;height:16px}.project-modal-thumbs{gap:var(--s-2);padding:var(--s-4);background:var(--bg-2);border-top:1px solid var(--line);display:flex;overflow-x:auto}@media (width<=899px){.project-modal-thumbs{padding:var(--s-2)}}.project-thumb{border:1px solid var(--line);border-radius:var(--r-1);opacity:.58;flex:none;width:82px;height:56px;transition:opacity .3s,border-color .3s;overflow:hidden}.project-thumb img{object-fit:cover;width:100%;height:100%}.project-thumb:hover,.project-thumb.is-active{opacity:1;border-color:var(--ink)}@media (width<=899px){.project-thumb{width:56px;height:38px}}.project-modal-info{padding:var(--s-8);gap:var(--s-5);flex-direction:column;min-width:0;display:flex}@media (width<=899px){.project-modal-info{padding:var(--s-4);gap:var(--s-2)}}.project-modal-tag{align-items:center;gap:var(--s-2);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-size:10px;display:inline-flex}.project-modal-tag:before{content:"";background:var(--line-strong);width:18px;height:1px}.project-modal-title{letter-spacing:0;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(1.7rem,3vw,2.4rem);font-weight:500;line-height:1.14;display:-webkit-box;overflow:hidden}@media (width<=899px){.project-modal-title{font-size:1.45rem}}.project-modal-subtitle,.project-modal-desc{color:var(--ink-2);line-height:1.75}.project-modal-subtitle{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-modal-desc{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width<=899px){.project-modal-desc{-webkit-line-clamp:2;line-height:1.65}}.project-modal-grid{gap:var(--s-3) var(--s-4);padding:var(--s-5) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:96px 1fr;display:grid}@media (width<=899px){.project-modal-grid{gap:6px var(--s-3);padding:var(--s-3) 0;grid-template-columns:72px 1fr}}.project-modal-grid dt{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.project-modal-grid dd{font-size:var(--t-sm);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-modal-scope{flex-wrap:wrap;gap:6px;display:flex}.project-modal-scope span{border:1px solid var(--line);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:100%;padding:5px 10px;font-size:10px;overflow:hidden}@media (width<=899px){.project-modal-scope{max-height:58px;overflow:hidden}}.project-modal-deliverables{border-top:1px solid var(--line);padding-top:var(--s-5)}@media (width<=899px){.project-modal-deliverables{padding-top:var(--s-3)}}.project-modal-deliverables p{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s-3);font-size:10px}.project-modal-deliverables ul{gap:var(--s-2);display:grid}.project-modal-deliverables li{color:var(--ink-2);font-size:var(--t-sm);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width<=899px){.project-modal-deliverables ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}}.project-modal-nav{justify-content:space-between;gap:var(--s-3);padding-top:var(--s-5);border-top:1px solid var(--line);margin-top:auto;display:flex}.project-modal-nav button{justify-content:center;align-items:center;gap:var(--s-2);border:1px solid var(--line);border-radius:var(--r-1);color:var(--ink);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;flex:1;padding:12px 14px;font-size:11px;transition:background .3s,color .3s;display:flex}.project-modal-nav button:hover{background:var(--ink);color:var(--bg)}.project-modal-nav button svg{width:14px;height:14px}@media (width<=899px){.project-modal-nav{padding-top:var(--s-3)}.project-modal-nav button{padding:10px 12px}}.works-list,.project-modal-grid,.project-modal-scope,.project-modal-deliverables{scrollbar-width:thin}.process{padding:var(--s-20) 0;border-top:1px solid var(--line);background:var(--bg-2)}@media (width>=900px){.process{padding:var(--s-24) 0}}.process-layout{gap:var(--s-10);display:grid}@media (width>=900px){.process-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);align-items:start}}.process-head{position:sticky;top:96px}.process-list{background:var(--line);border:1px solid var(--line);gap:1px;display:grid}.process-item{gap:var(--s-4);padding:var(--s-5);background:var(--bg-2);grid-template-columns:56px 1fr;display:grid}.process-item h3{font-size:var(--t-lg);color:var(--ink);margin-bottom:var(--s-2);font-weight:500}.process-item p{color:var(--ink-2);font-size:var(--t-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.65;display:-webkit-box;overflow:hidden}.process-index{font-family:var(--mono);letter-spacing:.16em;color:var(--ink-3);font-size:11px}.faq{padding:var(--s-20) 0;border-top:1px solid var(--line)}.faq-header{margin-bottom:var(--s-8)}.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-item .faq-question{justify-content:space-between;align-items:center;gap:var(--s-4);width:100%;padding:var(--s-5) 0;font-family:var(--font);font-size:var(--t-lg);color:var(--ink);text-align:left;letter-spacing:0;margin:0;font-weight:500;display:flex}.faq-item .faq-answer{overflow:hidden}.faq-item .faq-answer p{padding:0 0 var(--s-5) 0;color:var(--ink-2);max-width:60ch;line-height:1.8;font-size:var(--t-sm);-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.contact{padding:var(--s-20) 0;border-top:1px solid var(--line);position:relative;overflow:hidden}.contact:before{content:"01";right:var(--gutter);font-family:var(--mono);color:#f7f3ea09;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:clamp(10rem,28vw,26rem);line-height:1;position:absolute;bottom:-.18em}@media (width<=899px){.contact{padding:var(--s-16) 0}}.contact-grid{z-index:1;gap:var(--s-8);grid-template-columns:1fr;display:grid;position:relative}@media (width>=900px){.contact-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start}}@media (width<=899px){.contact-grid{gap:var(--s-6);min-width:0}}.contact-title{font-family:var(--font);letter-spacing:0;color:var(--ink);margin-bottom:var(--s-6);max-width:10ch;font-size:clamp(2.1rem,5.6vw,4.6rem);font-weight:500;line-height:1.02}@media (width<=899px){.contact-title{max-width:8ch}}.contact-desc{-webkit-line-clamp:4;font-size:var(--t-md);color:var(--ink-2);max-width:52ch;margin-bottom:var(--s-8);-webkit-box-orient:vertical;line-height:1.75;display:-webkit-box;overflow:hidden}@media (width<=599px){.contact-desc{-webkit-line-clamp:3;margin-bottom:var(--s-6)}}.contact-row{gap:var(--s-3);flex-wrap:wrap;display:flex}@media (width<=599px){.contact-row{flex-direction:column}}.contact-side{gap:var(--s-4);flex-direction:column;min-width:0;display:flex}.contact-photo{border:1px solid var(--line);padding:var(--s-3);background:#ffffff08;min-width:0}.contact-photo img{aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-1);width:100%}@media (width<=599px){.contact-photo{padding:var(--s-2)}}.contact-qr{padding:var(--s-6);border:1px solid var(--line);border-radius:var(--r-2);text-align:center;background:#ffffff09}.contact-qr img{width:172px;height:172px;margin:0 auto var(--s-4);border-radius:var(--r-1);background:#fff}@media (width<=899px){.contact-qr{padding:var(--s-4)}.contact-qr img{width:128px;height:128px}}.contact-qr .qr-title{font-size:var(--t-md);color:var(--ink);margin-bottom:4px}.contact-qr .qr-note{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.site-footer{padding:var(--s-10) 0 var(--s-5);border-top:1px solid var(--line);background:var(--bg)}.footer-inline{justify-content:space-between;align-items:center;gap:var(--s-4);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap;font-size:10px;display:flex}.footer-inline .footer-updated{color:var(--ink-2);font-variant-numeric:tabular-nums}.footer-inline a{color:var(--ink-2);transition:color .3s}.footer-inline a:hover{color:var(--ink)}
