:root{--ink:#eeeae2;--muted:#a7a59d;--bg:#181916;--panel:#22231f;--panel2:#2a2b26;--gold:#d8ad63;--gold2:#edd08b;--line:rgba(238,234,226,.14);--green:#91b85d;--serif:'Noto Serif SC',Georgia,serif;--sans:'Manrope','PingFang SC','Microsoft YaHei',sans-serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;overflow-x:hidden}.grain{position:fixed;inset:0;pointer-events:none;opacity:.06;z-index:50;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}::selection{background:rgba(216,173,99,.25);color:var(--gold2)}.site-header{height:82px;padding:0 clamp(24px,5vw,80px);display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;right:0;z-index:10;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(24,25,22,.9) 0%,transparent 100%);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--gold);color:#1d1e1a;font-family:var(--serif);font-weight:900;font-size:22px;transform:rotate(-10deg);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.brand:hover .brand-mark{transform:rotate(0deg) scale(1.08)}.brand-copy{display:flex;flex-direction:column;line-height:1.1}.brand-copy b{font-size:14px;letter-spacing:.08em}.brand-copy em{font-family:var(--mono);font-size:9px;font-style:normal;color:var(--muted);letter-spacing:.12em;margin-top:5px}.nav{display:flex;gap:clamp(18px,3vw,44px)}.nav a,.header-cta,.site-footer a{color:var(--muted);text-decoration:none;font-size:12px;letter-spacing:.08em;transition:color .25s}.nav a:hover,.site-footer a:hover{color:var(--gold2)}.header-cta{color:var(--ink);border:1px solid var(--line);padding:10px 16px;border-radius:999px;transition:all .25s}.header-cta:hover{background:rgba(216,173,99,.1);border-color:var(--gold)}.header-cta span{color:var(--gold);font-size:16px;margin-left:8px}.hero{min-height:790px;position:relative;display:flex;align-items:center;padding:150px clamp(24px,10vw,160px) 88px;overflow:hidden;background:radial-gradient(ellipse at 75% 30%,#393426 0%,#23241f 31%,var(--bg) 75%)}.hero:after{content:"";position:absolute;right:-14vw;top:9%;width:65vw;height:65vw;border:1px solid rgba(216,173,99,.16);border-radius:50%;box-shadow:0 0 0 36px rgba(216,173,99,.03),0 0 0 96px rgba(216,173,99,.02)}.hero-content{position:relative;z-index:2;max-width:760px}.eyebrow,.hero-kicker,.aside-label,.section-label,.hero-footer,.contact-caption,.cases-foot{font-family:var(--mono);font-size:11px;letter-spacing:.13em;color:var(--muted)}.eyebrow{display:flex;align-items:center;gap:9px;text-transform:uppercase}.pulse{width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 0 6px rgba(145,184,93,.12)}.hero-kicker{margin:56px 0 14px;color:var(--gold)}h1,h2,h3,p{margin:0}h1{font-family:var(--serif);font-size:clamp(58px,8.6vw,134px);line-height:.96;letter-spacing:-.055em;font-weight:900;max-width:900px}h1 span{color:var(--ink)}h1 i,h2 em{font-style:normal;color:var(--gold)}.hero-lede{max-width:490px;color:#c2c1ba;font-size:17px;line-height:1.8;margin-top:34px}.hero-actions{display:flex;gap:12px;margin-top:36px}.btn{display:inline-flex;align-items:center;gap:22px;text-decoration:none;font-size:13px;font-weight:700;padding:13px 19px;border-radius:999px}.btn-primary{color:#1a1b17;background:var(--gold)}.btn-primary:hover{background:var(--gold2);transform:translateY(-2px)}.btn-ghost{color:var(--ink);border:1px solid var(--line)}.btn-ghost:hover{border-color:var(--gold);color:var(--gold2)}.btn span{font-size:18px;line-height:0}.hero-aside{position:absolute;z-index:2;right:10vw;bottom:17%;width:220px}.hero-aside p{font-family:var(--serif);font-size:20px;line-height:1.45;color:#ded9cf;margin-top:14px}.aside-rule{height:1px;background:var(--line);margin:25px 0 13px}.aside-meta{display:flex;justify-content:space-between;color:var(--gold);font-family:var(--mono);font-size:11px}
.aside-stats{display:flex;gap:14px;margin-top:16px}.aside-stat{display:flex;flex-direction:column;gap:2px}.aside-num{font-family:var(--serif);font-size:28px;color:var(--gold);line-height:1}.aside-unit{font-family:var(--mono);font-size:8px;color:var(--muted);letter-spacing:.08em}
.hero-footer{position:absolute;bottom:24px;left:clamp(24px,5vw,80px);right:clamp(24px,5vw,80px);display:flex;justify-content:space-between}.hero-gridline{position:absolute;background:rgba(255,255,255,.05)}.hero-gridline-a{height:1px;left:0;right:0;top:33%}.hero-gridline-b{width:1px;top:0;bottom:0;left:61%}.hero-orbit{position:absolute;border:1px solid rgba(216,173,99,.18);border-radius:50%}.orbit-one{width:34vw;height:34vw;right:4vw;top:20%;animation:spin 28s linear infinite}.orbit-two{width:22vw;height:22vw;right:22vw;top:29%;border-style:dashed;animation:spin 22s linear infinite reverse}@keyframes spin{to{transform:rotate(360deg)}}.section{padding:130px clamp(24px,10vw,160px);position:relative}.section-label{display:flex;gap:18px;align-items:center;color:var(--gold);margin-bottom:60px}.section-label span{color:var(--muted)}.intro{background:#20211d}.intro-layout,.section-head,.path-head,.cases-head,.team-layout,.contact-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw}.intro h2,.section-head h2,.path-head h2,.cases-head h2,.team h2,.contact h2{font-family:var(--serif);font-weight:800;font-size:clamp(42px,5vw,76px);line-height:1.1;letter-spacing:-.045em}.intro-copy{padding-top:10px}.lead{font-size:24px;font-family:var(--serif);color:#e7e1d6;line-height:1.45;margin-bottom:20px}.intro-copy>p:not(.lead){color:var(--muted);max-width:480px;line-height:1.9}.stat-row{display:flex;gap:clamp(28px,5vw,72px);margin-top:48px;padding-top:20px;border-top:1px solid var(--line)}.stat-row div{display:flex;flex-direction:column}.stat-row strong{font-size:46px;color:var(--gold);font-weight:500;line-height:1}.stat-row span{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.1em;margin-top:8px}.statement{font-family:var(--serif);font-size:clamp(28px,4vw,58px);line-height:1.2;margin-top:120px;color:#a6a49a}.statement span{color:var(--gold);font-family:var(--sans);font-size:.6em;margin-left:12px}.capability{background:#181916}.section-head{align-items:end;margin-bottom:58px}.section-head p,.path-head p,.cases-head>p,.team-intro,.contact-layout>div>p{color:var(--muted);max-width:330px;line-height:1.9}.stack{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:var(--line);border:1px solid var(--line)}.stack-item{min-height:310px;padding:22px 20px;display:flex;flex-direction:column;background:var(--panel);transition:transform .3s,background .3s}.stack-item:hover{transform:translateY(-8px);background:var(--panel2)}.stack-index{font-family:var(--mono);font-size:11px;color:var(--gold);margin-bottom:68px}.stack-name{font-family:var(--serif);font-size:27px}.stack-desc{font-size:13px;line-height:1.7;color:var(--muted);margin-top:13px}.stack-tag{font-family:var(--mono);font-size:10px;color:var(--gold);margin-top:auto;padding-top:20px}.stack-data{background:#24251f}.stack-model{background:#29271f}.stack-agent{background:#272c25}.stack-service{background:#262624}.capability-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.capability-note{display:flex;gap:12px;color:var(--muted);font-size:13px}.note-icon{color:var(--gold);font-size:19px}.text-link{color:var(--gold);text-decoration:none;font-family:var(--mono);font-size:11px;letter-spacing:.08em}.text-link:hover{color:var(--gold2)}.text-link span{font-size:16px;margin-left:8px}.path{background:#20211d}.path-head{align-items:end;margin-bottom:70px}.path-track{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.path-step{padding:30px 32px 0 0;border-right:1px solid var(--line);min-height:245px}.path-step:not(:first-child){padding-left:32px}.path-step:last-child{border-right:0}.path-num{font-family:var(--mono);color:var(--gold);font-size:13px;margin-bottom:30px}.path-step h3{font-family:var(--serif);font-size:31px;font-weight:600}.path-step p{color:var(--muted);font-size:14px;line-height:1.75;margin-top:10px;max-width:300px}.path-step span{font-family:var(--mono);font-size:10px;color:var(--gold);display:block;margin-top:22px}.cases{background:#181916}.cases-head{align-items:end;margin-bottom:46px}.filter-bar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:28px}.filter{background:transparent;border:1px solid var(--line);color:var(--muted);font:inherit;font-family:var(--mono);font-size:11px;padding:10px 13px;cursor:pointer;border-radius:999px}.filter span{color:#777870;margin-left:5px}.filter:hover,.filter.active{background:var(--gold);color:#1d1e19;border-color:var(--gold)}.filter.active span{color:#62502d}.case-grid{display:flex;flex-direction:column;gap:54px;background:transparent}.case-card{background:var(--panel);padding:22px;display:flex;flex-direction:column;transition:background .25s,transform .25s,box-shadow .25s;cursor:pointer;position:relative;overflow:hidden}.case-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.case-card:hover::before{transform:scaleX(1)}.case-card:hover{background:var(--panel2);transform:translateY(-4px);box-shadow:0 8px 32px rgba(0,0,0,.3)}.case-card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.case-card:active{transform:translateY(-2px)}.case-card-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;color:var(--gold);margin-bottom:-2px}.case-type{border:1px solid rgba(216,173,99,.35);padding:4px 7px;transition:background .25s,border-color .25s}.case-card:hover .case-type{background:rgba(216,173,99,.1);border-color:var(--gold)}.case-card h3{font-family:var(--serif);font-size:20px;line-height:1.3;font-weight:600;margin-top:0;margin-bottom:4px;transition:color .25s}.case-card:hover h3{color:var(--gold2)}.case-card p{font-size:12px;color:var(--muted);line-height:1.65;margin-top:0;margin-bottom:0;transition:color .25s}.case-card-foot{margin-top:auto;padding-top:14px;font-family:var(--mono);font-size:10px;color:#777870}.case-stack{font-family:var(--mono);font-size:10px;color:#a7a59d;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:5px}.case-stack .chip{display:inline-block;padding:3px 7px;background:rgba(216,173,99,.08);border:1px solid rgba(216,173,99,.18);border-radius:4px;color:#bfb184;line-height:1.5;letter-spacing:.04em;transition:all .25s}.case-card:hover .case-stack .chip{background:rgba(216,173,99,.14);border-color:rgba(216,173,99,.35);color:var(--gold2)}.cases-foot{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.team{background:#20211d}.team-layout{align-items:start}.team-intro{margin-top:28px}.team-list{display:flex;gap:2px;background:var(--line);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px}.team-list::-webkit-scrollbar{height:4px}.team-list::-webkit-scrollbar-track{background:transparent}.team-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.person-card{min-width:300px;max-width:380px;flex-shrink:0;scroll-snap-align:start}.person-card{background:var(--panel);padding:24px;min-height:240px}.person-card.featured{background:#2a2a22}.person-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--gold)}.person-role{color:var(--muted)}.person-card h3{font-family:var(--serif);font-size:32px;font-weight:600;margin-top:38px}.person-card p{font-size:13px;line-height:1.8;color:var(--muted);max-width:520px;margin-top:10px}.person-meta{display:flex;gap:25px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:22px;padding-top:13px;font-family:var(--mono);font-size:10px;color:#94958b}.person-card>a{display:inline-block;color:var(--gold);font-family:var(--mono);font-size:10px;text-decoration:none;margin-top:18px}
/* ─── Works ─── */
.works{background:#1e1f1b}.works-head{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;margin-bottom:46px}.works-head h2{font-family:var(--serif);font-weight:800;font-size:clamp(42px,5vw,76px);line-height:1.1;letter-spacing:-.045em}.works-head p{color:var(--muted);max-width:330px;line-height:1.9;align-self:end}.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}.work-card{background:var(--panel);padding:20px;display:flex;flex-direction:column;cursor:pointer;transition:background .25s,transform .25s,box-shadow .25s;position:relative;overflow:hidden}.work-card:hover{background:var(--panel2);transform:translateY(-4px);box-shadow:0 8px 32px rgba(0,0,0,.3)}.work-card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.work-card:active{transform:translateY(-2px)}.work-card .work-cover{aspect-ratio:16/10;overflow:hidden;margin:-20px -20px 14px;position:relative;background:#2b2a23}.work-card .work-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.work-card:hover .work-cover img{transform:scale(1.08)}.work-card .work-badge{position:absolute;top:10px;right:10px;background:var(--gold);color:#1d1e1a;font-family:var(--mono);font-size:8px;padding:3px 7px;letter-spacing:.08em}.work-card h3{font-family:var(--serif);font-size:17px;font-weight:600;line-height:1.3;transition:color .25s}.work-card:hover h3{color:var(--gold2)}.work-card .work-subtitle{font-family:var(--mono);font-size:9px;color:var(--gold);margin-top:2px}.work-card .work-summary{font-size:12px;color:var(--muted);line-height:1.65;margin-top:8px;transition:color .25s}.work-card .work-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.work-card .work-tags span{font-family:var(--mono);font-size:9px;padding:3px 7px;border:1px solid rgba(216,173,99,.18);border-radius:4px;color:#bfb184;transition:all .25s}.work-card:hover .work-tags span{background:rgba(216,173,99,.1);border-color:rgba(216,173,99,.35);color:var(--gold2)}.work-card .work-foot{display:flex;justify-content:space-between;margin-top:auto;padding-top:12px;font-family:var(--mono);font-size:9px;color:#777870}.work-card .work-year{color:var(--gold)}.work-card.category-aigc{border-left:3px solid #6b4fa3}.work-card.category-ai{border-left:3px solid #1f4cff}.work-card.category-iot{border-left:3px solid #0aa5d9}.work-card.category-hardware{border-left:3px solid #7b5c1d}.work-card.category-fullstack{border-left:3px solid #1398d8}.works-modal-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}.works-modal-metrics .metric-item{border:1px solid var(--line);padding:16px;text-align:center}.works-modal-metrics .metric-item strong{font-family:var(--serif);font-size:24px;color:var(--gold);display:block}.works-modal-metrics .metric-item span{font-family:var(--mono);font-size:10px;color:var(--muted)}.works-detail-content{display:grid;gap:24px;margin-top:36px}.works-detail-content .section-block{border-left:2px solid var(--gold);padding-left:20px;background:rgba(216,173,99,.04);padding:16px 20px}.works-detail-content .section-block h4{font-family:var(--mono);font-size:10px;color:var(--gold);letter-spacing:.1em;margin:0 0 8px}.works-detail-content .section-block p{color:var(--muted);font-size:13px;line-height:1.8}
/* ─── Modal ─── */
.modal{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:rgba(0,0,0,.75);backdrop-filter:blur(14px);padding:24px;overflow-y:auto;animation:fadeIn .3s}.modal[aria-hidden="true"]{display:none}.modal-panel{background:var(--bg);max-width:840px;width:100%;margin:auto;position:relative;animation:modalIn .4s cubic-bezier(.2,.7,.2,1)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes modalIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}.modal-close{position:absolute;top:16px;right:16px;background:transparent;border:1px solid var(--line);color:var(--muted);width:40px;height:40px;font-size:20px;cursor:pointer;border-radius:999px;display:grid;place-items:center;z-index:10}.modal-close:hover{background:var(--gold);color:#1d1e1a}.modal-hero{position:relative;height:340px;overflow:hidden;background:#2b2a23}.modal-hero img{width:100%;height:100%;object-fit:cover}.modal-hero-copy{position:absolute;bottom:0;left:0;right:0;padding:60px 28px 28px;background:linear-gradient(transparent,rgba(0,0,0,.75))}.modal-hero-copy span{font-family:var(--mono);font-size:10px;color:var(--gold);letter-spacing:.12em}.modal-hero-copy h2{font-family:var(--serif);font-size:clamp(26px,3vw,42px);font-weight:700;line-height:1.15;margin-top:6px}.modal-chapters{display:flex;gap:20px;padding:28px 28px 0;overflow-x:auto;background:var(--bg)}.modal-chapters a{flex-shrink:0;background:transparent;border:1px solid var(--line);color:var(--muted);font-family:var(--mono);font-size:10px;padding:9px 14px;cursor:pointer;border-radius:999px;text-decoration:none}.modal-chapters a:hover{background:var(--gold);color:#1d1e1a;border-color:var(--gold)}.modal-body{padding:0;background:var(--bg)}.detail-section{padding:0 28px 36px}.detail-section h3{font-family:var(--serif);font-size:26px;font-weight:600;margin:32px 0 14px}.detail-label{font-family:var(--mono);font-size:10px;color:var(--gold);letter-spacing:.12em;margin-bottom:4px}.detail-section .meta-row{display:flex;gap:28px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;color:var(--gold);margin-bottom:20px}.detail-section .meta-row span{color:var(--muted)}.detail-section p{color:var(--muted);font-size:14px;line-height:1.95;max-width:620px}.detail-visual-note{font-family:var(--mono);font-size:10px;color:#777870;margin-top:14px;max-width:100%!important}.process-flow{display:flex;gap:2px;background:var(--line);margin:28px 0}.process-step{background:var(--panel);flex:1;padding:20px 18px;min-height:120px;display:flex;flex-direction:column}.process-step .step-num{font-family:var(--mono);font-size:10px;color:var(--gold);margin-bottom:12px}.process-step h4{font-family:var(--serif);font-size:14px;font-weight:600}.process-step p{font-size:11px;line-height:1.65;color:var(--muted);margin-top:6px;max-width:100%}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);margin:28px 0}.result-grid>div{background:var(--panel);padding:28px 24px}.result-grid h4{font-family:var(--serif);font-size:22px;color:var(--gold);font-weight:500}.result-grid p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:6px;max-width:100%}.shot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);margin:28px 0}.shot-grid>div{aspect-ratio:16/9;background:#2b2a23;overflow:hidden}.shot-grid>div img{width:100%;height:100%;object-fit:cover}.modal-meta{display:flex;flex-direction:column;gap:2px;background:var(--line)}.modal-meta dt,.modal-meta dd{background:var(--panel);padding:12px 18px}.modal-meta dt{font-family:var(--mono);font-size:10px;color:var(--gold);padding-bottom:1px}.modal-meta dd{font-size:12px;color:var(--muted);padding-top:1px;margin:0}.overview-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;margin-top:42px}.modal-overview-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;margin-top:42px}.modal-overview-grid h4{font-family:var(--serif);font-size:18px;font-weight:600;margin-bottom:10px}.modal-overview-grid p{color:var(--muted);font-size:13px;line-height:1.9}.modal-overview-grid ul{list-style:none;padding:0;margin:16px 0 0}.modal-overview-grid ul li{font-family:var(--mono);font-size:10px;color:var(--gold);padding:8px 0;border-bottom:1px solid var(--line)}.tech-list{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.tech-list span{font-family:var(--mono);font-size:9px;padding:5px 10px;border:1px solid var(--line);border-radius:4px;color:var(--muted)}.contact{background:radial-gradient(ellipse at 80% 20%,#3b3528 0%,#20211d 44%,#181916 85%);overflow:hidden}.contact-layout{align-items:end}.contact-layout>div>p{margin-top:30px}.contact-card{border:1px solid rgba(216,173,99,.35);padding:26px 28px;background:rgba(24,25,22,.45);backdrop-filter:blur(10px)}.contact-caption{color:var(--gold);margin-bottom:25px}.contact-email{display:flex;justify-content:space-between;align-items:center;color:var(--ink);font-family:var(--serif);font-size:clamp(21px,2.2vw,33px);text-decoration:none;line-height:1.2}.contact-email span{color:var(--gold);font-family:var(--sans);font-size:23px}.contact-phone{display:block;color:var(--muted);font-family:var(--mono);font-size:12px;text-decoration:none;margin-top:14px}.contact-divider{height:1px;background:var(--line);margin:28px 0 15px}.contact-links{display:flex;gap:25px}.contact-links a{color:var(--muted);font-family:var(--mono);font-size:11px;text-decoration:none}.contact-links a:hover{color:var(--gold)}.contact-orbit{position:absolute;right:-20vw;bottom:-35vw;width:70vw;height:70vw;border:1px solid rgba(216,173,99,.15);border-radius:50%}.site-footer{display:flex;justify-content:space-between;gap:20px;padding:25px clamp(24px,5vw,80px);border-top:1px solid var(--line);font-family:var(--mono);font-size:10px;color:#777870;letter-spacing:.08em}.site-footer a{font-size:10px}.reveal{opacity:0;transform:translateY(18px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}.reveal-delay-1{animation-delay:.12s}.reveal-delay-2{animation-delay:.22s}.reveal-delay-3{animation-delay:.34s}@keyframes rise{to{opacity:1;transform:none}}

/* ─── Scroll Reveal ─── */
.scroll-reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}.scroll-reveal.visible{opacity:1;transform:translateY(0)}

/* ─── Hero bg-layer for modal ─── */
.hero-bg-layer{position:absolute;inset:0;z-index:0}.hero-bg-layer img{width:100%;height:100%;object-fit:cover}

/* ─── Loading shimmer ─── */
.loading-shimmer{background:linear-gradient(90deg,var(--panel) 25%,var(--panel2) 50%,var(--panel) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ─── Smooth scroll for modal body ─── */
.modal-body::-webkit-scrollbar{width:4px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}

/* ─── Focus styles for accessibility ─── */
a:focus-visible,button:focus-visible,.filter:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}

/* ─── Reduced motion ─── */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:900px){.nav{display:none}.site-header{height:70px}.hero{min-height:760px;padding-top:125px}.hero-aside{right:24px;bottom:16%;width:180px}.hero-aside p{font-size:16px}.hero-footer{font-size:9px;gap:12px}.hero-footer span:nth-child(2){display:none}.section{padding:95px 24px}.intro-layout,.section-head,.path-head,.cases-head,.team-layout,.contact-layout{grid-template-columns:1fr;gap:35px}.stack{grid-template-columns:1fr 1fr}.stack-item{min-height:240px}.stack-item:last-child{grid-column:span 2}.case-grid{flex-direction:column}.industry-grid{grid-template-columns:repeat(2,1fr)}.path-track{grid-template-columns:1fr}.path-step,.path-step:not(:first-child){border-right:0;border-bottom:1px solid var(--line);padding:25px 0;min-height:0}.path-step:last-child{border-bottom:0}.statement{margin-top:75px}.contact-card{margin-top:15px}
.works-head{grid-template-columns:1fr;gap:24px}.works-grid{grid-template-columns:repeat(2,1fr)}.modal-overview-grid{grid-template-columns:1fr;gap:32px}.overview-grid{grid-template-columns:1fr;gap:32px}.shot-grid{grid-template-columns:repeat(2,1fr)}.process-flow{flex-direction:column}.result-grid{grid-template-columns:1fr}.works-modal-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){h1{font-size:54px}.hero{min-height:720px}.hero-lede{font-size:15px}.hero-aside{position:relative;right:auto;bottom:auto;margin-top:55px;width:230px}.hero-footer{font-size:8px}.hero-footer span:last-child{display:none}.stack{grid-template-columns:1fr}.stack-item,.stack-item:last-child{grid-column:auto;min-height:220px}.case-grid{flex-direction:column}.industry-grid{grid-template-columns:1fr}.stat-row{gap:25px}.stat-row strong{font-size:36px}.contact-email{font-size:22px}.site-footer{flex-direction:column;gap:7px}
.works-grid{grid-template-columns:1fr}.works-modal-metrics{grid-template-columns:1fr}.shot-grid{grid-template-columns:1fr}}
