﻿:root{--bg:#0b0c0c;--surface:#111313;--surface-2:#171918;--line:#2a2e2c;--muted:#979b96;--text:#f2f2ec;--amber:#d4a45b;--cyan:#73c6c8;--orange:#dd8b56;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:'Manrope','Noto Sans SC',sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}.section-shell{max-width:var(--max);margin:auto;padding-left:32px;padding-right:32px}.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:auto;padding:0 32px;border-bottom:1px solid rgba(255,255,255,.08);font-size:11px;letter-spacing:.12em}.brand{display:flex;align-items:center;gap:12px;font-weight:700}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--amber);border-radius:50%;font-size:10px;color:var(--amber)}.desktop-nav{display:flex;gap:30px;color:#a9ada7}.desktop-nav a:hover,.text-link:hover{color:var(--amber)}.header-cta{padding:10px 15px;border:1px solid var(--line);border-radius:4px;color:#d4d7ce}.hero{min-height:650px;display:grid;grid-template-columns:1.08fr .92fr;gap:40px;align-items:center;padding-top:80px;padding-bottom:90px}.eyebrow{font-family:'DM Mono',monospace;color:#9ea59c;font-size:11px;letter-spacing:.12em;margin:0 0 18px}.pulse-dot,.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber);margin-right:8px}.hero h1{font-size:clamp(38px,5.2vw,72px);line-height:1.08;letter-spacing:-.03em;max-width:740px;margin:0 0 26px;font-weight:800}.accent{color:var(--amber)}.hero-intro{max-width:540px;color:#b3b7b0;font-size:17px;margin:0 0 30px}.hero-actions,.button-row{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;gap:14px;border-radius:3px;padding:13px 17px;font-size:12px;font-weight:700;letter-spacing:.04em;transition:transform .2s,border-color .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--amber);color:#15130f}.button-ghost,.button-outline{border:1px solid var(--line);background:transparent;color:#e3e5dc;appearance:none;-webkit-appearance:none}.button-outline{border-color:#535b55}.button-ghost:hover,.button-outline:hover{background:rgba(255,255,255,.03)}.button-small{padding:10px 12px;background:var(--amber);color:#14130f;border:0}.hero-meta{display:flex;gap:25px;color:#6f756e;font:10px 'DM Mono',monospace;letter-spacing:.1em;margin-top:40px}.portrait-wrap{height:500px;position:relative;display:grid;place-items:center}.portrait-placeholder{height:420px;width:min(100%,360px);background:linear-gradient(145deg,#262824,#101211);border:1px solid #343832;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#adb0a8;text-align:center;position:relative;z-index:1}.portrait-placeholder span{font-size:14px}.portrait-placeholder small{font-size:11px;color:#737a71;margin-top:7px}.orbit{position:absolute;border:1px solid rgba(212,164,91,.5);border-radius:50%;transform:rotate(-19deg)}.orbit-a{width:510px;height:170px}.orbit-b{width:420px;height:260px;transform:rotate(51deg);border-color:rgba(255,255,255,.15)}.portrait-caption{position:absolute;bottom:5px;left:0;right:0;display:flex;justify-content:space-between;color:#747b72;font:10px 'DM Mono',monospace;letter-spacing:.08em}.portrait-caption span:first-child{display:none}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.section-heading h2{font-size:clamp(28px,3.2vw,46px);line-height:1.12;margin:0;letter-spacing:-.025em}.section-note{color:var(--muted);font-size:13px;margin:0;max-width:270px}.projects{padding-top:35px;padding-bottom:120px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:transform .25s,border-color .25s}.project-card:hover{transform:translateY(-5px);border-color:#535b53}.project-visual{height:260px;padding:17px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.project-geo .project-visual{background:#211a26}.project-skill .project-visual{background:#151e1d}.project-apply .project-visual{background:#22201b}.visual-top,.visual-bottom,.apply-head{display:flex;justify-content:space-between;font:10px 'DM Mono',monospace;color:#a5aaa0;letter-spacing:.08em}.visual-bottom{align-items:end}.visual-bottom strong{color:var(--amber);font-weight:500}.visual-core{height:160px;position:relative;display:grid;place-items:center}.geo-ring{position:absolute;border:1px solid rgba(210,164,91,.55);border-radius:50%;width:200px;height:70px;transform:rotate(-28deg)}.ring-two{width:145px;height:145px;transform:rotate(45deg);border-color:rgba(133,110,194,.6)}.geo-node{text-align:center;font:12px 'DM Mono',monospace;letter-spacing:.12em;color:#ddd5c5}.geo-node b{font-size:28px;color:#d5a65d}.node{width:8px;height:8px;border-radius:50%;position:absolute;background:#8f6bc1;box-shadow:0 0 16px #8f6bc1}.node-a{top:30px;left:32%}.node-b{bottom:25px;right:25%}.node-c{top:50%;right:18%;background:var(--amber);box-shadow:0 0 14px var(--amber)}.project-content{padding:20px 20px 24px}.project-kicker{font:10px 'DM Mono',monospace;color:#8e968c;letter-spacing:.08em}.status-dot.cyan{background:var(--cyan)}.status-dot.orange{background:var(--orange)}.project-content h3{font-size:26px;margin:12px 0 7px;letter-spacing:-.02em}.project-content p{font-size:13px;color:#aeb2aa;min-height:42px;margin:0 0 17px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.tag-row span{border:1px solid #343a34;border-radius:3px;padding:5px 7px;color:#a6aca2;font:10px 'DM Mono',monospace}.text-link{font-size:12px;color:var(--amber);font-weight:700}.proof{padding-top:55px;padding-bottom:120px;border-top:1px solid rgba(255,255,255,.08)}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.proof-item{border-top:1px solid #40463f;padding-top:16px}.proof-index{color:var(--amber);font:11px 'DM Mono',monospace}.proof-item strong{display:block;font:12px 'DM Mono',monospace;letter-spacing:.1em;margin:20px 0 10px}.proof-item p{color:#b1b5ad;font-size:14px;min-height:43px}.proof-item a{font-size:12px;color:var(--amber)}.case-studies{padding-bottom:130px}.case-row{display:grid;grid-template-columns:56px 1fr minmax(270px,390px);gap:22px;border-top:1px solid var(--line);padding:40px 0}.case-number{font:13px 'DM Mono',monospace;color:var(--amber)}.case-main h3{font-size:30px;line-height:1.2;max-width:650px;margin:14px 0}.case-main>p{color:#b2b6ae;font-size:14px;max-width:650px;margin:0 0 24px}.demo-panel{background:var(--surface-2);border:1px solid #343a35;border-radius:4px;padding:16px;margin:22px 0;max-width:650px}.demo-header{display:flex;justify-content:space-between;gap:15px;font:10px 'DM Mono',monospace;color:#99a097;margin-bottom:17px}.demo-header small{color:#777f76}.demo-panel label{display:block;color:#d2d5cc;font-size:12px;margin-bottom:8px}.demo-input-row{display:flex;gap:8px}.demo-input-row input{flex:1;min-width:0;background:#0c0e0d;border:1px solid #3c423c;color:var(--text);padding:11px 12px;border-radius:3px;font:12px 'Manrope',sans-serif}.demo-result{margin-top:14px;min-height:42px;padding:11px;background:#0c0e0d;border-left:2px solid var(--amber);color:#aeb4aa;font-size:12px}.filter-row{display:flex;gap:6px;flex-wrap:wrap}.filter{background:transparent;color:#aeb4aa;border:1px solid #3d443d;padding:8px 10px;border-radius:3px;font-size:11px;cursor:pointer}.filter.active{background:#d4a45b;color:#17130f;border-color:#d4a45b}.apply-results{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.apply-results div{background:#0c0e0d;padding:12px}.apply-results strong,.apply-results span{display:block}.apply-results strong{font-size:24px;color:#e9e9e0}.apply-results span{font-size:10px;color:#879087;margin-top:4px}.demo-note{font-size:11px!important;color:#7f877e!important;margin:13px 0 0!important}.case-media{min-height:330px;align-self:start}.placeholder-media{border:1px dashed #454c45;background:#111413;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#8c948a;padding:20px}.placeholder-media small{font-size:11px;color:#666f67;margin-top:8px;max-width:220px}.skill-ui,.apply-ui{margin:auto;width:86%;border:1px solid #56625c;background:rgba(5,8,7,.38);padding:18px}.ui-bar{height:8px;width:48%;background:var(--cyan);margin-bottom:20px}.ui-row{height:10px;background:#61756e;width:76%;margin:10px 0}.ui-row.wide{width:92%}.ui-row.short{width:53%}.skill-terminal{margin-top:24px;color:#8c9a91;font:11px 'DM Mono',monospace;line-height:1.7}.skill-terminal b{color:var(--cyan)}.apply-ui{background:#19170f}.apply-head{font-size:9px;color:#aca38d}.apply-head b{color:#ddaa67}.metric-line{display:flex;align-items:end;gap:9px;margin:24px 0 16px}.metric-line strong{font-size:40px;color:#e4b36c}.metric-line span{font-size:11px;color:#8e9188}.metric-line em{font:11px 'DM Mono',monospace;color:#82bd91;margin-left:auto}.mini-list{display:grid;gap:7px}.mini-list i{height:9px;background:#6d644a;display:block}.mini-list i:nth-child(2){width:82%}.mini-list i:nth-child(3){width:68%}.mini-list i:nth-child(4){width:90%}.site-footer{border-top:1px solid var(--line);padding-top:65px;padding-bottom:120px;display:grid;grid-template-columns:1fr auto;gap:50px}.site-footer h2{font-size:44px;margin:0 0 12px}.site-footer p{color:var(--muted);font-size:14px}.contact-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:end}.qr-placeholder{width:100px;height:100px;border:1px dashed #596158;display:grid;place-items:center;text-align:center;color:#8d968a;font-size:10px;padding:10px}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;color:#687068;font:10px 'DM Mono',monospace;letter-spacing:.08em}.mobile-dock{display:none}
@media(max-width:900px){.site-header{padding:0 20px}.desktop-nav{display:none}.section-shell{padding-left:20px;padding-right:20px}.hero{grid-template-columns:1fr;padding-top:58px}.portrait-wrap{order:-1;height:350px}.portrait-placeholder{height:300px;width:240px}.orbit-a{width:360px;height:130px}.orbit-b{width:300px;height:190px}.hero h1{font-size:42px}.project-grid,.proof-grid{grid-template-columns:1fr}.section-heading{display:block}.section-note{margin-top:15px}.case-row{grid-template-columns:32px 1fr}.case-media{grid-column:2;min-height:240px}.site-footer{grid-template-columns:1fr}.contact-actions{justify-content:start}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}.mobile-dock{position:fixed;z-index:10;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;background:#111313f2;border-top:1px solid #363b37;backdrop-filter:blur(12px)}.mobile-dock a{text-align:center;padding:15px;font-size:12px;font-weight:700}.mobile-dock a+a{background:var(--amber);color:#17130f}.hero-meta{flex-wrap:wrap;line-height:1.5}}
@media(max-width:480px){.header-cta{padding:9px 10px;font-size:10px}.brand span:last-child{display:none}.hero h1{font-size:35px}.hero-intro{font-size:15px}.project-visual{height:220px}.case-main h3{font-size:25px}.demo-input-row{display:block}.demo-input-row input{width:100%;margin-bottom:8px}.demo-input-row .button{width:100%;justify-content:center}.site-footer h2{font-size:34px}}

.brand-avatar{width:30px;height:30px;border:1px solid var(--amber);border-radius:50%;object-fit:cover;object-position:center 20%}.portrait-image{position:relative;z-index:1;width:min(100%,360px);height:420px;object-fit:cover;object-position:center top;border:1px solid #343832;filter:saturate(.82) contrast(1.04)}.qr-image{width:118px;height:118px;object-fit:cover;border:1px solid #596158;background:#fff}.contact-actions button,.mobile-dock button{cursor:pointer;border:0}.contact-dialog{width:min(90vw,420px);padding:30px;background:#131615;color:var(--text);border:1px solid #4b534c;border-radius:5px;box-shadow:0 28px 80px rgba(0,0,0,.65)}.contact-dialog::backdrop{background:rgba(2,3,3,.78);backdrop-filter:blur(6px)}.contact-dialog h2{font-size:30px;margin:0 0 20px}.dialog-qr-image{display:block;width:158px;height:158px;object-fit:cover;border:1px solid #596158;background:#fff;margin:0 0 22px}.contact-dialog>p:not(.eyebrow){font-size:12px;color:var(--muted);margin:0}.contact-dialog>a,.contact-value{display:block;font:500 27px 'DM Mono',monospace;color:var(--amber);margin:5px 0 28px}.dialog-close{position:absolute;top:12px;right:14px;width:34px;height:34px;background:transparent;color:#afb5ac;border:1px solid #343a35!important;border-radius:50%;cursor:pointer;font-size:22px}.copy-status{display:block;min-height:20px;margin-top:12px;color:#9ea69c;font-size:11px}.mobile-dock button{background:transparent;color:var(--text)}
@media(max-width:900px){.portrait-image{height:300px;width:240px}.qr-image{width:108px;height:108px}}

.project-skill .skill-ui,.project-apply .apply-ui{display:none}

.case-project-card{align-self:start;width:100%;margin:0}.case-project-card .project-visual{height:245px}.case-project-card .project-content{padding:20px 22px 24px}.case-project-card .project-content p{min-height:0}.case-project-card .text-link{display:inline-block;margin-top:2px}
.case-row{grid-template-columns:minmax(270px,390px) 56px 1fr;align-items:stretch}.case-project-card{grid-column:1;grid-row:1;height:calc(100% - 45px);display:flex;flex-direction:column;align-self:start}.case-project-card .project-content{flex:1}.case-project-card .text-link{display:none}.case-number{grid-column:2;grid-row:1}.case-main{grid-column:3;grid-row:1}.case-main .button-outline{margin-top:4px}
@media(max-width:900px){.case-row{grid-template-columns:32px 1fr;align-items:start}.case-project-card{grid-column:2;grid-row:auto;height:auto}.case-number{grid-column:1;grid-row:1}.case-main{grid-column:2;grid-row:2}.case-project-card .project-visual{height:240px}}

.case-row{grid-template-columns:56px 1fr minmax(270px,390px);align-items:start}.case-number,.case-main{grid-column:auto;grid-row:auto}
@media(max-width:900px){.case-row{grid-template-columns:32px 1fr}.case-number{grid-column:1;grid-row:1}.case-main{grid-column:2;grid-row:1}.case-media{grid-column:2}}

#skill-archive .skill-online-button{border:1px solid var(--amber);border-radius:3px;padding:13px 17px;background:var(--amber);color:#15130f;font-size:12px;font-weight:700;letter-spacing:.04em;white-space:nowrap;flex:0 0 auto;justify-content:center;box-sizing:border-box}
#skill-archive .button-row{align-items:center}
#skill-archive .skill-online-button{order:1}
#skill-archive .button-row a[href*="github.com"]{order:2}
#skill-archive .subtle-link{display:none}

.contact-actions .qr-image{display:none}

.case-studies .case-row{display:grid;grid-template-columns:72px minmax(0,.95fr) minmax(390px,1.05fr);grid-template-rows:auto auto 1fr auto auto auto;column-gap:54px;row-gap:18px;min-height:440px;padding:38px 42px;margin-bottom:26px;background:#181a19;border:1px solid #242927;border-radius:4px;align-items:stretch}
.case-studies .case-number{grid-column:1;grid-row:1;width:48px;height:34px;display:grid;place-items:center;border:1px dashed #454b47;border-radius:4px;color:#e4e4dc;font:700 15px 'DM Mono',monospace}
.case-studies .case-main{display:contents}
.case-studies .case-main .case-label{grid-column:2;grid-row:1;align-self:start;color:#9fa69b;font:11px 'DM Mono',monospace;letter-spacing:.1em}
.case-studies .case-main h3{grid-column:2;grid-row:2;margin:0;max-width:660px;font-size:clamp(36px,4.2vw,58px);line-height:1.08;letter-spacing:-.045em}
.case-studies .case-main>p{grid-column:2;grid-row:4;margin:0;max-width:610px;align-self:end;color:#c2c5bd;font-size:15px;font-weight:700;line-height:1.55}
.case-studies .demo-panel{grid-column:3;grid-row:1 / span 6;align-self:stretch;max-width:none;min-height:360px;margin:0;padding:22px 24px;background:#070808;border-color:#252b28;display:flex;flex-direction:column;justify-content:flex-start}
.case-studies .demo-panel .demo-result{flex:1}
.case-studies #brandgeo .demo-result{min-height:260px}
.case-studies .case-main>.button,.case-studies .button-row{grid-column:2;grid-row:5;align-self:end;margin-top:6px}
.case-studies .demo-note{grid-column:2;grid-row:6;align-self:start;margin:0!important}
.case-studies .case-media{display:none}
@media(max-width:900px){.case-studies .case-row{grid-template-columns:1fr;grid-template-rows:auto;min-height:0;padding:28px 22px;row-gap:18px}.case-studies .case-number,.case-studies .case-main .case-label,.case-studies .case-main h3,.case-studies .case-main>p,.case-studies .demo-panel,.case-studies .case-main>.button,.case-studies .button-row,.case-studies .demo-note{grid-column:1;grid-row:auto}.case-studies .case-main h3{font-size:32px}.case-studies .demo-panel{min-height:0}.case-studies #brandgeo .demo-result{min-height:220px}}

.case-studies .case-main>.button,.case-studies .button-row{justify-self:start;width:auto;max-width:100%}
.case-studies #application .case-main>.button{background:var(--amber);color:#15130f;border-color:var(--amber)}
.case-studies .case-main>.demo-note{grid-column:2;grid-row:6;margin:8px 0 0!important;align-self:start;color:#8f978d!important;font-size:11px!important;font-weight:500!important;line-height:1.5}
@media(max-width:900px){.case-studies .case-main>.demo-note{grid-column:1;grid-row:auto}}

body{isolation:isolate}
.site-header,main,.site-footer,.mobile-dock,.contact-dialog{position:relative;z-index:1}
.ambient-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(circle at 18% 10%,rgba(212,164,91,.08),transparent 28%),radial-gradient(circle at 86% 38%,rgba(115,198,200,.055),transparent 26%),radial-gradient(circle at 48% 82%,rgba(221,139,86,.055),transparent 32%)}
.ambient-layer span,.ambient-layer i{position:absolute;display:block;border-radius:999px;will-change:transform,opacity}
.ambient-layer span:nth-child(1){width:360px;height:360px;left:-120px;top:18vh;background:rgba(212,164,91,.13);filter:blur(90px);animation:ambientDriftOne 18s ease-in-out infinite alternate}
.ambient-layer span:nth-child(2){width:280px;height:280px;right:-90px;top:42vh;background:rgba(115,198,200,.1);filter:blur(80px);animation:ambientDriftTwo 22s ease-in-out infinite alternate}
.ambient-layer span:nth-child(3){width:220px;height:220px;left:54%;bottom:-90px;background:rgba(221,139,86,.11);filter:blur(74px);animation:ambientDriftThree 20s ease-in-out infinite alternate}
.ambient-layer i{width:3px;height:3px;background:rgba(228,216,190,.28);box-shadow:80px 120px rgba(212,164,91,.22),240px 60px rgba(255,255,255,.12),420px 210px rgba(115,198,200,.18),680px 90px rgba(212,164,91,.16),920px 260px rgba(255,255,255,.1),1120px 160px rgba(221,139,86,.16);animation:particleFloat 16s linear infinite}
.ambient-layer i:nth-of-type(1){left:8%;top:12%;animation-duration:19s}
.ambient-layer i:nth-of-type(2){left:28%;top:48%;animation-duration:24s;animation-delay:-8s;opacity:.72}
.ambient-layer i:nth-of-type(3){left:66%;top:18%;animation-duration:21s;animation-delay:-4s;opacity:.58}
@keyframes ambientDriftOne{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(120px,40px,0) scale(1.12)}}
@keyframes ambientDriftTwo{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-110px,70px,0) scale(.94)}}
@keyframes ambientDriftThree{from{transform:translate3d(0,0,0) scale(.96)}to{transform:translate3d(60px,-90px,0) scale(1.08)}}
@keyframes particleFloat{from{transform:translate3d(0,0,0)}to{transform:translate3d(24px,-140px,0)}}
.back-home-float{position:fixed;right:44px;bottom:48px;z-index:12;display:inline-flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(212,164,91,.55);border-radius:999px;background:rgba(17,19,19,.72);color:#f2f2ec;box-shadow:0 16px 48px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.06);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;opacity:0;pointer-events:none;transform:translate3d(0,14px,0);transition:opacity .25s ease,transform .25s ease,border-color .2s ease,background .2s ease}
.back-home-float.is-visible{opacity:1;pointer-events:auto;transform:translate3d(0,0,0)}
.back-home-float:hover{background:rgba(27,30,29,.88);border-color:var(--amber);transform:translate3d(0,-2px,0)}
.back-home-float span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--amber);color:#15130f;font-weight:800;line-height:1}
.back-home-float b{font-size:12px;letter-spacing:.04em}
@media(max-width:900px){.back-home-float{right:22px;bottom:92px;padding:10px 12px}.back-home-float b{display:none}.ambient-layer span:nth-child(1){width:260px;height:260px}.ambient-layer span:nth-child(2){width:220px;height:220px}}
@media(prefers-reduced-motion:reduce){.ambient-layer span,.ambient-layer i{animation:none}.back-home-float{transition:none}}

.project-geo .visual-top,.project-geo .visual-bottom,.project-skill .visual-top,.project-skill .visual-bottom,.project-apply .visual-top,.project-apply .visual-bottom{background:rgba(0,0,0,.8);padding:7px 9px;border:1px solid rgba(255,255,255,.12);border-radius:3px}

.project-visual{border-radius:25px 25px 9px 9px;border:1px solid rgba(130,205,226,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 12px 30px rgba(0,0,0,.22)}.project-geo .project-visual{border-color:rgba(190,156,255,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 0 24px rgba(137,87,220,.18)}.project-skill .project-visual{border-color:rgba(93,218,226,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 0 24px rgba(61,179,201,.18)}.project-apply .project-visual{border-color:rgba(125,225,195,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 0 24px rgba(50,174,139,.18)}.cover-image{border-radius:24px 24px 8px 8px}.cover-overlay{background:linear-gradient(180deg,rgba(3,8,12,.24),rgba(3,8,12,.35))}.project-geo .cover-overlay{background:linear-gradient(180deg,rgba(17,5,34,.2),rgba(12,5,20,.34))}.project-skill .cover-overlay{background:linear-gradient(180deg,rgba(0,12,22,.18),rgba(0,12,22,.32))}.project-apply .cover-overlay{background:linear-gradient(180deg,rgba(0,22,18,.16),rgba(0,22,18,.28))}.project-geo .visual-top,.project-skill .visual-top,.project-apply .visual-top{background:rgba(4,10,14,.82);border-radius:999px;padding:7px 12px;align-self:flex-start;gap:12px}.project-geo .visual-top{border-color:rgba(163,120,245,.65);color:#e8dbff}.project-skill .visual-top{border-color:rgba(93,218,226,.65);color:#d8ffff}.project-apply .visual-top{border-color:rgba(125,225,195,.65);color:#ddfff2}.project-geo .visual-bottom,.project-skill .visual-bottom,.project-apply .visual-bottom{background:rgba(4,10,14,.82);border-radius:999px;padding:7px 12px;align-self:stretch}.project-geo .visual-core{opacity:.24}.project-skill .skill-ui,.project-apply .apply-ui{opacity:.2}

.project-visual{isolation:isolate}.cover-image,.cover-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.cover-image{z-index:0;object-fit:cover;filter:saturate(.9) contrast(1.03);transition:transform .45s ease,filter .45s ease}.cover-overlay{z-index:1;background:linear-gradient(180deg,rgba(6,8,8,.04),rgba(6,8,8,.42))}.project-card:hover .cover-image{transform:scale(1.04);filter:saturate(1) contrast(1.06)}.project-geo .project-visual:after,.project-skill .project-visual:after,.project-apply .project-visual:after{content:'';position:absolute;inset:0;border:1px solid rgba(255,255,255,.14);pointer-events:none;z-index:3}.project-geo .visual-top,.project-geo .visual-bottom,.project-skill .visual-top,.project-skill .visual-bottom,.project-apply .visual-top,.project-apply .visual-bottom{position:relative;z-index:2;text-shadow:0 1px 10px rgba(0,0,0,.9)}.project-geo .visual-core,.project-skill .skill-ui,.project-apply .apply-ui{position:relative;z-index:2}.project-skill .cover-overlay{background:linear-gradient(180deg,rgba(1,6,13,.06),rgba(1,6,13,.38))}.project-apply .cover-overlay{background:linear-gradient(180deg,rgba(6,10,12,.05),rgba(9,23,20,.36))}

#brandgeo .demo-result{height:176px;overflow:auto;scrollbar-gutter:stable;padding-right:12px}
#brandgeo .demo-result::-webkit-scrollbar{width:8px}
#brandgeo .demo-result::-webkit-scrollbar-thumb{background:#3f463e;border-radius:999px}
#brandgeo .geo-analysis{display:grid;grid-template-columns:86px 1fr;gap:14px;align-items:start}
#brandgeo .geo-score{background:#131615;border:1px solid #333a34;padding:12px 10px;min-height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
#brandgeo .geo-score span{font-size:10px;color:#8d9489;letter-spacing:.08em;font-family:'DM Mono',monospace}
#brandgeo .geo-score strong{font-size:38px;line-height:1;color:var(--amber);margin-top:10px}
#brandgeo .geo-score em{font-size:11px;font-style:normal;color:#8f9589;margin-top:2px}
#brandgeo .geo-summary{display:grid;gap:8px}
#brandgeo .geo-summary p{margin:0;font-size:12px;line-height:1.55}
#brandgeo .geo-summary ul{margin:2px 0 0;padding-left:16px;display:grid;gap:6px}
#brandgeo .geo-summary li{font-size:12px;line-height:1.45}
#brandgeo .geo-summary li strong{display:block;color:#e8e8df;font-weight:700}
#brandgeo .geo-summary li span{display:block;color:#a4aaa0}
#brandgeo .geo-evidence{display:grid;gap:6px;margin-top:2px}
#brandgeo .geo-evidence b{font:10px 'DM Mono',monospace;color:#9fa69b;letter-spacing:.08em}
#brandgeo .geo-evidence div{display:flex;flex-wrap:wrap;gap:6px}
#brandgeo .geo-evidence span{border:1px solid #3b423b;background:#0c0e0d;padding:5px 7px;border-radius:3px;font-size:10px;color:#a5aca2}
#brandgeo .geo-summary::-webkit-scrollbar{width:8px}
#brandgeo .geo-summary::-webkit-scrollbar-thumb{background:#3f463e;border-radius:999px}
@media(max-width:900px){#brandgeo .geo-analysis{grid-template-columns:1fr}#brandgeo .geo-score{min-height:0}#brandgeo .demo-result{height:208px}}
#brandgeo .demo-result{height:236px}
#brandgeo .geo-real-result{display:grid;gap:14px}
#brandgeo .geo-score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#brandgeo .geo-score-card{background:#131615;border:1px solid #343a35;border-radius:5px;padding:11px 10px;display:grid;gap:9px;min-width:0}
#brandgeo .geo-score-card div{display:flex;align-items:center;justify-content:space-between;gap:8px}
#brandgeo .geo-score-card span{font-size:11px;color:#d9ded3;font-weight:700;white-space:nowrap}
#brandgeo .geo-score-card strong{font-size:18px;line-height:1;color:#f2f2ec}
#brandgeo .geo-score-card i{display:block;height:6px;border-radius:999px;background:#333a36;overflow:hidden}
#brandgeo .geo-score-card i em{display:block;height:100%;background:#f1601c;border-radius:999px}
#brandgeo .geo-score-card.purple i em{background:#8b3ff1}
#brandgeo .geo-score-card small{font-size:10px;color:#8f978c}
#brandgeo .geo-core-copy{display:grid;gap:8px}
#brandgeo .geo-core-copy b{font-size:13px;color:#f2f2ec}
#brandgeo .geo-core-copy p{margin:0;color:#aeb4aa;font-size:13px;line-height:1.75}
#brandgeo .geo-report-top{display:grid;grid-template-columns:minmax(152px,200px) 1fr;gap:12px;align-items:stretch}
#brandgeo .geo-report-score{background:#0c0e0d;border:1px solid #343a35;border-radius:5px;padding:14px 12px;display:grid;gap:8px;align-content:center}
#brandgeo .geo-report-score span{font:10px 'DM Mono',monospace;color:#8c9488;letter-spacing:.08em}
#brandgeo .geo-report-score strong{font-size:42px;line-height:1;color:var(--amber)}
#brandgeo .geo-report-score em{font-style:normal;font-size:11px;color:#9aa196}
#brandgeo .geo-overview-copy{background:#0c0e0d;border:1px solid #343a35;border-radius:5px;padding:12px 12px 10px}
#brandgeo .geo-score-card__head{display:flex;align-items:center;gap:8px}
#brandgeo .geo-score-card__icon{width:24px;height:24px;display:grid;place-items:center;border:1px solid #3b423b;background:#0c0e0d;border-radius:5px;font:10px 'DM Mono',monospace;color:#cfd4ca;flex:0 0 auto}
#brandgeo .geo-score-card__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
#brandgeo .geo-score-card__head strong{margin-left:auto}
#brandgeo .geo-gap-list{display:grid;gap:8px}
#brandgeo .geo-gap-card{border:1px solid #343a35;background:#0c0e0d;border-radius:5px;padding:10px 11px;display:grid;gap:5px}
#brandgeo .geo-gap-card__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
#brandgeo .geo-gap-card__head strong{font-size:12px;line-height:1.4;color:#f2f2ec}
#brandgeo .geo-gap-card__head small{font:10px 'DM Mono',monospace;color:var(--amber);white-space:nowrap}
#brandgeo .geo-gap-card p{margin:0;color:#aeb4aa;font-size:12px;line-height:1.65}
@media(max-width:900px){#brandgeo .geo-report-top{grid-template-columns:1fr}#brandgeo .geo-score-grid{grid-template-columns:1fr}#brandgeo .demo-result{height:300px}}
#brandgeo .geo-analysis-shell{display:grid;gap:12px}
#brandgeo .geo-loading{min-height:100%;display:grid;place-items:center;color:#aeb4aa;font-size:12px}
#brandgeo .geo-analysis-head{display:flex;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #2f3530}
#brandgeo .geo-analysis-head span,#brandgeo .geo-analysis-section>span{display:block;font:10px 'DM Mono',monospace;color:#8c9488;letter-spacing:.08em}
#brandgeo .geo-analysis-head strong{display:block;margin-top:4px;font-size:16px;line-height:1.35;color:#f2f2ec}
#brandgeo .geo-analysis-head small{max-width:42%;font:10px 'DM Mono',monospace;color:#7f877d;word-break:break-all;text-align:right}
#brandgeo .geo-analysis-section{background:#131615;border:1px solid #343a35;border-radius:5px;padding:12px}
#brandgeo .geo-analysis-section p{margin:8px 0 0;color:#d7dad1;font-size:12px;line-height:1.75}
#brandgeo .geo-analysis-list{margin:8px 0 0;padding-left:18px;display:grid;gap:7px;color:#d7dad1;font-size:12px;line-height:1.65}
#brandgeo .geo-analysis-body{display:grid;gap:8px;margin-top:8px}
#brandgeo .geo-analysis-body p{margin:0}
#brandgeo .demo-result{height:238px;overflow:auto;scrollbar-gutter:stable;padding-right:12px}
#brandgeo .demo-result::-webkit-scrollbar{width:8px}
#brandgeo .demo-result::-webkit-scrollbar-thumb{background:#3f463e;border-radius:999px}
@media(max-width:900px){#brandgeo .demo-result{height:300px}#brandgeo .geo-analysis-head{display:block}#brandgeo .geo-analysis-head small{max-width:none;text-align:left;margin-top:8px}}
#skill-archive .demo-result{max-height:230px;overflow:auto;scrollbar-gutter:stable}
#skill-archive .demo-result::-webkit-scrollbar{width:8px}
#skill-archive .demo-result::-webkit-scrollbar-thumb{background:#3f463e;border-radius:999px}
#skill-archive .skill-task-result{display:grid;gap:12px}
#skill-archive .skill-task-description{display:grid;gap:5px}
#skill-archive .skill-task-description span{font:10px 'DM Mono',monospace;color:#8f978c;letter-spacing:.08em}
#skill-archive .skill-task-description p{margin:0;color:#e5e7df;font-size:13px;line-height:1.55}
#skill-archive .skill-intent-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #343a35;background:#111413;border-radius:5px;padding:8px 10px}
#skill-archive .skill-intent-meta span{font:10px 'DM Mono',monospace;color:#8f978c;letter-spacing:.08em}
#skill-archive .skill-intent-meta strong{color:var(--amber);font-size:12px;text-align:right}
#skill-archive .skill-dev-advice{border-left:2px solid var(--amber);background:#0c0e0d;padding:10px 12px;display:grid;gap:5px}
#skill-archive .skill-dev-advice span{font:10px 'DM Mono',monospace;color:#8f978c;letter-spacing:.08em}
#skill-archive .skill-dev-advice p{margin:0;color:#b9beb5;font-size:12px;line-height:1.65}
#skill-archive .skill-card-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#skill-archive .skill-recommend-card{border:1px solid #343a35;background:#131615;border-radius:5px;padding:11px 10px;display:grid;gap:8px;min-width:0}
#skill-archive .skill-recommend-card div{display:flex;justify-content:space-between;align-items:center;gap:8px}
#skill-archive .skill-recommend-card strong{color:#f2f2ec;font-size:12px;line-height:1.25}
#skill-archive .skill-recommend-card span{font:11px 'DM Mono',monospace;color:var(--cyan)}
#skill-archive .skill-recommend-card p{margin:0;color:#9fa69b;font-size:11px;line-height:1.55}
@media(max-width:900px){#skill-archive .skill-card-list{grid-template-columns:1fr}#skill-archive .demo-result{max-height:300px}}

#brandgeo .brandgeo-title{display:grid;gap:14px;align-content:start}
#brandgeo .title-product{position:relative;display:inline-flex;width:max-content;max-width:100%;align-items:center;gap:14px;color:var(--amber);font:800 clamp(32px,3.4vw,50px)/.92 'Manrope','Noto Sans SC',sans-serif;letter-spacing:-.045em;text-shadow:0 0 28px rgba(212,164,91,.22)}
#brandgeo .title-product::after{content:"";width:clamp(42px,5vw,76px);height:2px;background:linear-gradient(90deg,var(--amber),rgba(212,164,91,0));transform:translateY(3px)}
#brandgeo .title-copy{display:block;text-wrap:balance}
@media(max-width:900px){#brandgeo .brandgeo-title{gap:10px}#brandgeo .title-product{font-size:30px;line-height:1}#brandgeo .title-product::after{width:42px}}

:root{--cursor-x:50vw;--cursor-y:35vh;--ambient-shift-x:0px;--ambient-shift-y:0px;--ambient-tilt:0deg;--ambient-depth:.66}
.ambient-layer{background:radial-gradient(ellipse at calc(16% + var(--ambient-shift-x)) calc(12% + var(--ambient-shift-y)),rgba(212,164,91,.13),transparent 38%),radial-gradient(ellipse at calc(88% - var(--ambient-shift-x)) calc(42% - var(--ambient-shift-y)),rgba(115,198,200,.1),transparent 42%),radial-gradient(ellipse at calc(52% + var(--ambient-shift-y)) 88%,rgba(221,139,86,.08),transparent 46%),linear-gradient(132deg,rgba(212,164,91,.035),transparent 34%,rgba(115,198,200,.03) 68%,transparent);background-size:130% 130%,145% 145%,120% 120%,100% 100%;animation:ambientFieldBreath 18s cubic-bezier(.45,0,.2,1) infinite alternate}
.ambient-layer::before,.ambient-layer::after{content:"";position:absolute;pointer-events:none;will-change:transform,opacity}
.ambient-layer::before{inset:-18%;background:radial-gradient(ellipse at 22% 18%,rgba(212,164,91,.16),transparent 42%),radial-gradient(ellipse at 76% 50%,rgba(115,198,200,.1),transparent 46%),radial-gradient(ellipse at 50% 82%,rgba(221,139,86,.08),transparent 48%);filter:blur(54px);opacity:var(--ambient-depth);transform:translate3d(var(--ambient-shift-x),var(--ambient-shift-y),0) rotate(var(--ambient-tilt)) scale(1.04);transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .45s ease}
.ambient-layer::after{inset:-30%;background:conic-gradient(from calc(112deg + var(--ambient-tilt)) at 52% 48%,transparent 0deg,rgba(212,164,91,.065) 52deg,transparent 118deg,rgba(115,198,200,.052) 190deg,transparent 262deg,rgba(221,139,86,.045) 322deg,transparent 360deg);filter:blur(64px);opacity:.58;transform:translate3d(calc(var(--ambient-shift-x) * -.55),calc(var(--ambient-shift-y) * -.55),0) rotate(calc(var(--ambient-tilt) * -1));animation:ambientAurora 28s cubic-bezier(.45,0,.2,1) infinite alternate}
.ambient-layer span:nth-child(1){width:470px;height:470px;left:-150px;top:14vh;background:rgba(212,164,91,.2);filter:blur(86px);animation-duration:13s}
.ambient-layer span:nth-child(2){width:390px;height:390px;right:-130px;top:34vh;background:rgba(115,198,200,.16);filter:blur(82px);animation-duration:15s}
.ambient-layer span:nth-child(3){width:320px;height:320px;left:50%;bottom:-120px;background:rgba(221,139,86,.16);filter:blur(76px);animation-duration:14s}
.ambient-layer i{width:4px;height:4px;background:rgba(242,242,236,.34);box-shadow:70px 120px rgba(212,164,91,.3),170px 42px rgba(255,255,255,.18),300px 190px rgba(115,198,200,.24),470px 86px rgba(212,164,91,.22),650px 250px rgba(255,255,255,.16),820px 132px rgba(221,139,86,.24),1010px 315px rgba(115,198,200,.18),1180px 72px rgba(212,164,91,.22),1320px 220px rgba(255,255,255,.12);animation:particleFloat 10s linear infinite}
.ambient-layer i:nth-of-type(1){animation-duration:12s;opacity:.9}
.ambient-layer i:nth-of-type(2){animation-duration:15s;opacity:.78}
.ambient-layer i:nth-of-type(3){animation-duration:13s;opacity:.68}
.orbit-a{animation:orbitBreath 8s ease-in-out infinite alternate}
.orbit-b{animation:orbitBreathReverse 9s ease-in-out infinite alternate}
.pulse-dot{box-shadow:0 0 0 0 rgba(212,164,91,.45);animation:statusPulse 2.8s ease-out infinite}
.project-card,.case-studies .case-row,.demo-panel,.button{position:relative}
.project-card,.case-studies .case-row,.demo-panel{overflow:hidden}
.project-card::before,.case-studies .case-row::before,.demo-panel::before{content:"";position:absolute;inset:-1px;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.08) 34%,rgba(212,164,91,.16) 48%,rgba(115,198,200,.09) 58%,transparent 74%);transform:translate3d(-115%,0,0);transition:opacity .28s ease;z-index:2}
.project-card:hover::before,.case-studies .case-row:hover::before,.demo-panel:focus-within::before{opacity:1;animation:surfaceSweep 1.5s cubic-bezier(.16,1,.3,1)}
.button{overflow:hidden}
.button::after{content:"";position:absolute;inset:-45% -35%;pointer-events:none;background:linear-gradient(115deg,transparent 28%,rgba(255,255,255,.34) 46%,transparent 64%);opacity:0;transform:translate3d(-80%,0,0);transition:opacity .18s ease}
.button:hover::after{opacity:.72;animation:buttonSweep .85s cubic-bezier(.16,1,.3,1)}
.hero h1 .accent{text-shadow:0 0 26px rgba(212,164,91,.24);animation:accentGlow 4s ease-in-out infinite alternate}
@keyframes ambientFieldBreath{0%{background-position:0% 0%,100% 40%,45% 100%,0 0}100%{background-position:10% 6%,90% 50%,50% 92%,0 0}}
@keyframes ambientAurora{0%{opacity:.46}45%{opacity:.62}100%{opacity:.52}}
@keyframes orbitBreath{from{transform:rotate(-19deg) scale(1);opacity:.72}to{transform:rotate(-13deg) scale(1.08);opacity:1}}
@keyframes orbitBreathReverse{from{transform:rotate(51deg) scale(1);opacity:.52}to{transform:rotate(45deg) scale(.94);opacity:.78}}
@keyframes statusPulse{0%{box-shadow:0 0 0 0 rgba(212,164,91,.46)}70%{box-shadow:0 0 0 9px rgba(212,164,91,0)}100%{box-shadow:0 0 0 0 rgba(212,164,91,0)}}
@keyframes surfaceSweep{from{transform:translate3d(-115%,0,0)}to{transform:translate3d(115%,0,0)}}
@keyframes buttonSweep{from{transform:translate3d(-80%,0,0)}to{transform:translate3d(80%,0,0)}}
@keyframes accentGlow{from{text-shadow:0 0 18px rgba(212,164,91,.18)}to{text-shadow:0 0 34px rgba(212,164,91,.42)}}
@media(prefers-reduced-motion:no-preference){.site-header,.hero-copy,.portrait-wrap,.project-card,.proof-item,.case-studies .case-row,.site-footer{animation:softRise .72s cubic-bezier(.16,1,.3,1) both}.portrait-wrap{animation-delay:.08s}.project-card:nth-child(2){animation-delay:.08s}.project-card:nth-child(3){animation-delay:.16s}.proof-item:nth-child(2){animation-delay:.08s}.proof-item:nth-child(3){animation-delay:.16s}.case-studies .case-row:nth-child(2){animation-delay:.08s}.case-studies .case-row:nth-child(3){animation-delay:.16s}.case-studies .case-row:nth-child(4){animation-delay:.24s}@keyframes softRise{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:translate3d(0,0,0)}}}
@media(max-width:900px){.ambient-layer::before{inset:-22%;opacity:.5}.ambient-layer::after{opacity:.42}.ambient-layer span:nth-child(1){width:310px;height:310px}.ambient-layer span:nth-child(2){width:260px;height:260px}.ambient-layer span:nth-child(3){width:240px;height:240px}.ambient-layer i{opacity:.56}}
@media(prefers-reduced-motion:reduce){.ambient-layer,.ambient-layer::before,.ambient-layer::after{transition:none;animation:none}.ambient-layer span,.ambient-layer i,.orbit-a,.orbit-b,.pulse-dot,.hero h1 .accent,.site-header,.hero-copy,.portrait-wrap,.project-card,.proof-item,.case-studies .case-row,.site-footer{animation:none!important}.project-card::before,.case-studies .case-row::before,.demo-panel::before,.button::after{display:none}}

/* Portfolio refinement: keep cards still on hover, let the content stay easy to scan. */
.project-card{transition:border-color .25s ease,box-shadow .25s ease}
.project-card:hover{transform:none;border-color:var(--line)}
.project-card:hover .cover-image{transform:none;filter:saturate(.9) contrast(1.03)}
.project-card::before,.case-studies .case-row::before{content:none!important;display:none!important}

/* Portfolio conversion pass: credibility, project paths, experience and case evidence. */
.credibility-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:24px;padding-bottom:24px}
.credibility-strip>div{display:flex;flex-direction:column;gap:5px;padding:0 22px;border-right:1px solid var(--line)}
.credibility-strip>div:first-child{padding-left:0}.credibility-strip>div:last-child{border-right:0}
.credibility-strip strong{font-size:24px;color:var(--text);letter-spacing:0}.credibility-strip span{font:10px 'DM Mono',monospace;color:var(--muted);letter-spacing:.08em}
.projects{padding-top:88px}
.project-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:2px}
.project-actions .case-link{color:#e4e7df}.project-actions .case-link:hover{color:var(--amber)}
.project-actions .demo-link{margin-left:auto}
.capabilities{padding-top:20px;padding-bottom:120px}
.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.capability-grid article{min-height:230px;padding:24px 22px;border-right:1px solid var(--line)}
.capability-grid article:last-child{border-right:0}
.capability-grid article>span{font:11px 'DM Mono',monospace;color:var(--amber)}
.capability-grid h3{font-size:22px;margin:42px 0 10px;letter-spacing:0}
.capability-grid p{font-size:14px;line-height:1.75;color:#b3b8b0;margin:0}
.experience-line{display:grid;grid-template-columns:190px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}
.experience-line strong{font:11px 'DM Mono',monospace;color:var(--amber);letter-spacing:.08em}
.experience-line p{margin:0;color:#c3c7bf;font-size:14px}
.case-flow{margin:22px 0;border:1px solid #343a35;background:#101211;padding:17px 18px 18px}
.flow-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}
.flow-heading span{font:10px 'DM Mono',monospace;letter-spacing:.12em;color:var(--amber)}
.flow-heading small{font-size:11px;color:#7f897f}
.flow-steps{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr);align-items:stretch;gap:8px}
.flow-steps>div{display:flex;flex-direction:column;gap:7px;min-height:102px;padding:12px;background:#171a18;border:1px solid #303731}
.flow-steps b{font:10px 'DM Mono',monospace;color:#7d887e}
.flow-steps strong{font-size:13px;color:#e2e5dd;line-height:1.35}
.flow-steps span{font-size:10px;line-height:1.5;color:#89938a}
.flow-steps>i{display:grid;place-items:center;color:var(--amber);font:18px 'DM Mono',monospace;font-style:normal}

@media(min-width:901px){
  .case-studies .case-flow{grid-column:2!important;grid-row:3!important;align-self:start!important;max-width:650px;margin:10px 0 0!important}
  .case-studies .case-insight{grid-column:2!important;grid-row:4!important}
  .case-studies .case-main>.button,.case-studies .button-row{grid-row:5!important}
  .case-studies .case-main>.demo-note{grid-row:6!important}
}
.contact-dialog .dialog-qr-image{margin-left:auto;margin-right:auto}

@media(max-width:900px){
  .credibility-strip{grid-template-columns:repeat(2,1fr);padding-top:0;padding-bottom:0}
  .credibility-strip>div{min-height:96px;justify-content:center;padding:16px;border-bottom:1px solid var(--line)}
  .credibility-strip>div:nth-child(2){border-right:0}.credibility-strip>div:nth-child(3),.credibility-strip>div:nth-child(4){border-bottom:0}
  .credibility-strip>div:first-child{padding-left:16px}
  .projects{padding-top:72px}
  .capability-grid{grid-template-columns:1fr 1fr}
  .capability-grid article{min-height:210px;border-bottom:1px solid var(--line)}
  .capability-grid article:nth-child(2){border-right:0}.capability-grid article:nth-child(3),.capability-grid article:nth-child(4){border-bottom:0}
  .experience-line{grid-template-columns:1fr;gap:10px}
  .flow-steps{grid-template-columns:1fr;gap:8px}
  .flow-steps>i{min-height:18px;transform:rotate(90deg)}
  .flow-steps>div{min-height:0}
  .case-studies .case-flow{grid-column:1!important;grid-row:auto!important;margin:0!important}
}

@media(max-width:560px){
  .capability-grid{grid-template-columns:1fr}
  .capability-grid article{min-height:0;border-right:0;border-bottom:1px solid var(--line)!important}
  .capability-grid article:last-child{border-bottom:0!important}
  .capability-grid h3{margin-top:24px}
  .project-actions{align-items:flex-start;flex-direction:column;gap:10px}
  .project-actions .demo-link{margin-left:0}
}
.hero-actions .button-ghost{background:rgba(212,164,91,.12);border-color:rgba(212,164,91,.44);color:#f5efe3;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 28px rgba(0,0,0,.18)}
.hero-actions .button-ghost:hover{background:rgba(212,164,91,.18);border-color:rgba(212,164,91,.68)}

/* Unified case-title system for all three case studies. */
.case-main .case-title{display:grid;gap:14px;align-content:start}
.case-main .title-product{position:relative;display:inline-flex;width:max-content;max-width:100%;align-items:center;gap:14px;color:var(--amber);font:800 clamp(32px,3.4vw,50px)/.92 'Manrope','Noto Sans SC',sans-serif;letter-spacing:-.045em;text-shadow:0 0 28px rgba(212,164,91,.22)}
.case-main .title-product::after{content:"";width:clamp(42px,5vw,76px);height:2px;background:linear-gradient(90deg,var(--amber),rgba(212,164,91,0));transform:translateY(3px)}
.case-main .title-copy{display:block;text-wrap:balance}

/* Make the cover image, mask and stroke share one exact corner mask to remove dark corner seams. */
.project-visual{overflow:hidden;background-clip:padding-box}
.cover-image,.cover-overlay{inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);border-radius:inherit}
.project-geo .project-visual:after,.project-skill .project-visual:after,.project-apply .project-visual:after{border-radius:inherit;inset:0}

@media(max-width:900px){.case-main .case-title{gap:10px}.case-main .title-product{font-size:30px;line-height:1}.case-main .title-product::after{width:42px}}

/* Let the Skill Archive result scroller use the full height of the demo card. */
#skill-archive .demo-panel{height:100%}
#skill-archive .demo-result{flex:1;min-height:0;max-height:none;overflow:auto;padding-right:12px}

/* Huashu + Taste pass: separate case wordmark, headline and insight copy. */
.portrait-image.portrait-cutout{width:min(100%,390px);height:450px;object-fit:contain;object-position:center bottom;border:0;filter:saturate(.9) contrast(1.05) drop-shadow(0 26px 54px rgba(0,0,0,.46)) drop-shadow(0 0 30px rgba(115,198,200,.16))}
.brand-avatar{background:rgba(212,164,91,.16);box-shadow:0 0 0 1px rgba(0,0,0,.28),0 0 18px rgba(212,164,91,.18)}
.case-studies .case-main h3.case-title{row-gap:10px;margin-top:6px}
.case-main .title-product{font-size:clamp(26px,2.8vw,42px);line-height:1;letter-spacing:-.04em;padding:0 0 4px;text-shadow:0 0 24px rgba(212,164,91,.18)}
.case-main .title-product::after{width:clamp(64px,7vw,120px);height:1px;opacity:.66}
.case-main .title-copy{font-size:clamp(40px,4.4vw,66px);line-height:1.04;letter-spacing:-.052em;color:#f2f2ec}
.case-studies .case-insight{grid-column:2;grid-row:4;display:grid;grid-template-columns:2px minmax(0,1fr);column-gap:18px;align-items:start;max-width:610px;margin:0}
.case-studies .case-insight::before{content:"";grid-column:1;grid-row:1 / span 2;align-self:start;width:2px;height:100%;min-height:92px;background:rgba(212,164,91,.42)}
.case-studies .case-insight span{grid-column:2;grid-row:1;display:block;margin:0 0 10px;font:10px 'DM Mono',monospace;letter-spacing:.12em;color:rgba(212,164,91,.82)}
.case-studies .case-insight p{grid-column:2;grid-row:2;margin:0;color:#aeb6ad!important;font-size:14px!important;font-weight:500!important;line-height:1.78!important;text-wrap:pretty}

@media(max-width:900px){.portrait-image.portrait-cutout{height:320px;width:min(100%,260px)}.case-main .title-copy{font-size:32px;line-height:1.08}.case-studies .case-insight{grid-template-columns:2px minmax(0,1fr)}}

/* Reading pass: darken the ambient layer so motion stays atmospheric without competing with text. */
:root{--bg:#070808;--ambient-depth:.38}
body{background:radial-gradient(circle at 50% -18%,rgba(212,164,91,.028),transparent 34%),#070808}
.ambient-layer{opacity:.68;background:radial-gradient(ellipse at calc(16% + var(--ambient-shift-x)) calc(12% + var(--ambient-shift-y)),rgba(212,164,91,.06),transparent 40%),radial-gradient(ellipse at calc(88% - var(--ambient-shift-x)) calc(42% - var(--ambient-shift-y)),rgba(115,198,200,.045),transparent 44%),radial-gradient(ellipse at calc(52% + var(--ambient-shift-y)) 88%,rgba(221,139,86,.036),transparent 48%),linear-gradient(132deg,rgba(212,164,91,.014),transparent 34%,rgba(115,198,200,.014) 68%,transparent)}
.ambient-layer::before{filter:blur(70px);opacity:var(--ambient-depth);background:radial-gradient(ellipse at 22% 18%,rgba(212,164,91,.08),transparent 43%),radial-gradient(ellipse at 76% 50%,rgba(115,198,200,.052),transparent 46%),radial-gradient(ellipse at 50% 82%,rgba(221,139,86,.044),transparent 48%)}
.ambient-layer::after{filter:blur(82px);opacity:.24;background:conic-gradient(from calc(112deg + var(--ambient-tilt)) at 52% 48%,transparent 0deg,rgba(212,164,91,.028) 52deg,transparent 118deg,rgba(115,198,200,.024) 190deg,transparent 262deg,rgba(221,139,86,.02) 322deg,transparent 360deg)}
.ambient-layer span:nth-child(1){background:rgba(212,164,91,.08)}
.ambient-layer span:nth-child(2){background:rgba(115,198,200,.062)}
.ambient-layer span:nth-child(3){background:rgba(221,139,86,.064)}
.ambient-layer i{opacity:.34;background:rgba(242,242,236,.16);box-shadow:70px 120px rgba(212,164,91,.14),170px 42px rgba(255,255,255,.08),300px 190px rgba(115,198,200,.1),470px 86px rgba(212,164,91,.1),650px 250px rgba(255,255,255,.07),820px 132px rgba(221,139,86,.1),1010px 315px rgba(115,198,200,.08),1180px 72px rgba(212,164,91,.09),1320px 220px rgba(255,255,255,.055)}
@keyframes ambientAurora{0%{opacity:.18}45%{opacity:.3}100%{opacity:.24}}
@media(max-width:900px){.ambient-layer{opacity:.58}.ambient-layer::before{opacity:.3}.ambient-layer::after{opacity:.18}.ambient-layer i{opacity:.28}}

/* Hero portrait refresh: tighter photo crop with slow rotating orbital pattern behind it. */
.portrait-wrap{isolation:isolate}
.portrait-wrap::before{content:"";position:absolute;width:min(76vw,470px);height:min(76vw,470px);border-radius:50%;background:radial-gradient(circle,rgba(115,198,200,.11),transparent 58%);filter:blur(28px);opacity:.58;z-index:0}
.portrait-wrap .orbit{z-index:1;transform-origin:center;will-change:transform}
.portrait-wrap .orbit-a{animation:portraitOrbitA 24s linear infinite}
.portrait-wrap .orbit-b{animation:portraitOrbitB 32s linear infinite reverse}
.portrait-image.portrait-home{z-index:2;width:min(100%,390px);height:455px;object-fit:cover;object-position:center 16%;filter:saturate(.96) contrast(1.04) drop-shadow(0 28px 56px rgba(0,0,0,.5)) drop-shadow(0 0 34px rgba(115,198,200,.18))}
.portrait-caption{z-index:3}
@keyframes portraitOrbitA{from{transform:rotate(-19deg) scale(1)}to{transform:rotate(341deg) scale(1)}}
@keyframes portraitOrbitB{from{transform:rotate(51deg) scale(.96)}to{transform:rotate(411deg) scale(.96)}}
@media(max-width:900px){.portrait-image.portrait-home{height:330px;width:min(100%,270px);object-position:center 15%}.portrait-wrap::before{width:310px;height:310px}.portrait-wrap .orbit-a{width:350px;height:120px}.portrait-wrap .orbit-b{width:290px;height:180px}}

/* Fixed demo module height: long generated reports scroll inside the result area instead of stretching the case card. */
@media(min-width:901px){
  .case-studies .case-row{height:640px;min-height:640px;overflow:hidden}
  .case-studies #skill-archive.case-row,
  .case-studies #application.case-row{height:640px;min-height:640px}
  #skill-archive .demo-panel,
  #application .demo-panel{height:100%;max-height:none}
  .case-studies .demo-panel{height:100%;min-height:0;overflow:hidden}
  .case-studies .demo-panel .demo-result{flex:1;min-height:0;overflow:auto}
  #brandgeo .demo-result{height:auto;max-height:none}
}

/* Skill Archive demo: match the richer card stack used on the standalone Skill page. */
#skill-archive .skill-task-result{display:grid;gap:12px}
#skill-archive .skill-task-description,
#skill-archive .skill-relation,
#skill-archive .skill-dev-advice,
#skill-archive .skill-recall,
#skill-archive .skill-card-header{border:1px solid #2d424f;background:#0b1117;border-radius:5px;padding:12px 14px}
#skill-archive .skill-task-description span,
#skill-archive .skill-relation span,
#skill-archive .skill-dev-advice span{display:block;margin-bottom:8px;font:10px 'DM Mono',monospace;color:#8c9488;letter-spacing:.08em}
#skill-archive .skill-task-description p{margin:0;color:#e8edf5;font-size:18px;line-height:1.5;font-weight:700}
#skill-archive .skill-relation strong{display:block;margin:0;color:#d6e1ea;font-size:13px;line-height:1.6;font-weight:600}
#skill-archive .skill-dev-advice p{margin:0;color:#b8c3cd;font-size:13px;line-height:1.7}
#skill-archive .skill-recall{color:#9aa7b4;font-size:13px;line-height:1.6;background:#0a1015;border-color:#233341}
#skill-archive .skill-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
#skill-archive .skill-card-header h4{margin:0;color:#f2f2ec;font-size:18px;line-height:1.2}
#skill-archive .skill-card-list{display:grid;grid-template-columns:1fr;gap:12px}
#skill-archive .skill-recommend-card{display:grid;grid-template-columns:minmax(176px,.95fr) minmax(260px,1.25fr) auto;gap:16px;align-items:center;border:1px solid #295066;background:linear-gradient(180deg,rgba(18,31,40,.98),rgba(10,15,20,.98));border-radius:6px;padding:16px}
#skill-archive .skill-card-main{display:grid;gap:10px;min-width:0}
#skill-archive .skill-recommend-card strong{color:#f4f7fb;font-size:24px;line-height:1;letter-spacing:-.02em}
#skill-archive .skill-card-tags{display:flex;flex-wrap:wrap;gap:6px}
#skill-archive .skill-card-tags span{border:1px solid #2a4a5c;background:#0d1720;color:#a9b6c0;padding:5px 8px;border-radius:3px;font:11px 'DM Mono',monospace;white-space:nowrap}
#skill-archive .skill-card-tags .is-installed{border-color:#4f7c92;color:#d9eef6}
#skill-archive .skill-recommend-card p{margin:0;color:#a9b6c0;font-size:14px;line-height:1.7}
#skill-archive .skill-card-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
#skill-archive .skill-card-actions button,
#skill-archive .skill-copy-all{border:1px solid #355d72;background:#0d1922;color:#dcecf6;padding:11px 14px;border-radius:4px;font-size:12px;font-weight:700;white-space:nowrap}
#skill-archive .skill-copy-all{background:#153345;border-color:#40718a}
#skill-archive .skill-card-actions button:hover,
#skill-archive .skill-copy-all:hover{background:#173646}
@media(max-width:900px){
  #skill-archive .skill-card-header{flex-direction:column;align-items:flex-start}
  #skill-archive .skill-recommend-card{grid-template-columns:1fr;gap:12px}
  #skill-archive .skill-card-actions{justify-content:flex-start}
}

/* Skill Archive local-page style output, used for the "语音翻译 / 多媒体创作" match. */
#skill-archive .task-relationship-summary{
  border:1px solid rgba(115,198,200,.16);
  border-radius:4px;
  background:rgba(5,7,13,.38);
  padding:10px 12px;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}
#skill-archive .task-relationship-summary > strong,
#skill-archive .task-relationship-summary .development-order > strong{
  display:block;
  margin-bottom:4px;
  color:var(--text);
}
#skill-archive .task-relationship-summary .development-order{
  display:block;
  margin-top:6px;
  color:var(--text);
}
#skill-archive .task-relationship-summary .development-order-line + .development-order-line{margin-top:4px}
#skill-archive .task-relationship-summary .development-order-line strong{display:inline;margin:0;color:var(--text)}
#skill-archive .task-search-audit{margin-top:10px}
#skill-archive .task-resource-heading-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:4px;
}
#skill-archive .task-resource-heading{
  margin:0;
  color:var(--text);
  font-size:14px;
  font-weight:760;
}
#skill-archive .task-resource-heading-action{
  min-height:34px;
  border:1px solid rgba(115,198,200,.24);
  border-radius:4px;
  padding:7px 10px;
  color:#dcecf6;
  background:rgba(13,23,38,.86);
  font:inherit;
  font-size:12px;
  cursor:pointer;
  white-space:nowrap;
}
#skill-archive .task-resource-group{
  display:grid;
  gap:10px;
  width:100%;
}
#skill-archive .task-resource-card{
  display:grid;
  grid-template-columns:minmax(220px,.85fr) minmax(0,1.6fr) max-content;
  gap:12px 20px;
  align-items:start;
  border:1px solid rgba(92,236,255,.16);
  border-radius:4px;
  background:rgba(13,23,38,.74);
  padding:12px;
}
#skill-archive .task-resource-card.selected{
  border-color:rgba(115,198,200,.42);
  background:linear-gradient(135deg,rgba(115,198,200,.10),rgba(13,23,38,.78));
}
#skill-archive .task-resource-card > .task-resource-top{grid-column:1;grid-row:1}
#skill-archive .task-resource-title{display:grid;gap:8px}
#skill-archive .task-resource-title strong{color:var(--text);font-size:24px;line-height:1;font-weight:760}
#skill-archive .task-resource-badges{display:flex;flex-wrap:wrap;gap:6px}
#skill-archive .task-resource-badges span{
  border:1px solid rgba(145,168,186,.16);
  border-radius:3px;
  padding:3px 7px;
  color:var(--muted);
  font-size:12px;
  background:rgba(5,7,13,.34);
}
#skill-archive .task-resource-badges .installed{
  border-color:rgba(115,198,200,.34);
  color:#d8eef2;
}
#skill-archive .task-resource-description{
  grid-column:2;
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}
#skill-archive .task-card-actions{
  grid-column:3;
  grid-row:1;
  align-self:center;
  justify-content:flex-end;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
#skill-archive .task-card-actions button{
  border:1px solid rgba(115,198,200,.24);
  border-radius:4px;
  padding:7px 10px;
  color:#dcecf6;
  background:rgba(13,23,38,.86);
  font:inherit;
  font-size:12px;
  cursor:pointer;
  white-space:nowrap;
}
@media(max-width:760px){
  #skill-archive .task-resource-card{grid-template-columns:minmax(0,1fr)}
  #skill-archive .task-resource-card > .task-resource-top,
  #skill-archive .task-resource-card > .task-resource-description,
  #skill-archive .task-resource-card > .task-card-actions{grid-column:auto;grid-row:auto}
  #skill-archive .task-card-actions{justify-content:flex-start}
}

/* CASE STUDIES layout cleanup: keep the yellow title, hide the English section label, and let the right-side demo panel control each card's height. */
.case-studies .case-label{display:none!important}
.case-studies .case-main{display:contents!important}
.case-studies .case-media{display:none!important}
.case-studies .case-main .title-product{
  font-size:clamp(26px,2.8vw,42px)!important;
  line-height:1!important;
  padding-bottom:0!important;
}
.case-studies .case-main .title-product::after{
  width:clamp(64px,7vw,120px)!important;
  height:1px!important;
  opacity:.66!important;
}
.case-studies .case-main .title-copy{
  font-size:clamp(36px,4vw,58px)!important;
  line-height:1.06!important;
  letter-spacing:-.048em!important;
}
@media(min-width:901px){
  .case-studies .case-row,
  .case-studies #skill-archive.case-row,
  .case-studies #application.case-row{
    grid-template-columns:72px minmax(0,.95fr) minmax(390px,1.05fr)!important;
    grid-template-rows:auto auto auto auto auto auto!important;
    height:640px!important;
    min-height:640px!important;
    max-height:640px!important;
    align-items:stretch!important;
    overflow:hidden!important;
  }
  .case-studies .case-main h3.case-title{
    grid-column:2!important;
    grid-row:1 / span 2!important;
    align-self:start!important;
    margin:0!important;
    row-gap:8px!important;
    max-width:650px!important;
  }
  .case-studies .case-insight{
    grid-column:2!important;
    grid-row:3!important;
    align-self:start!important;
    max-width:610px!important;
    margin:10px 0 0!important;
  }
  .case-studies .demo-panel,
  .case-studies #skill-archive .demo-panel,
  .case-studies #application .demo-panel{
    grid-column:3!important;
    grid-row:1 / span 6!important;
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
  }
  .case-studies .demo-panel .demo-result,
  #brandgeo .demo-result,
  #skill-archive .demo-result{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:auto!important;
    scrollbar-gutter:stable;
  }
  #skill-archive .demo-result{
    padding-right:12px;
  }
  .case-studies .case-main>.button,
  .case-studies .button-row{
    grid-column:2!important;
    grid-row:4!important;
    align-self:end!important;
    justify-self:start!important;
    margin-top:4px!important;
  }
  .case-studies .case-main>.demo-note{
    grid-column:2!important;
    grid-row:5!important;
    align-self:start!important;
    margin:8px 0 0!important;
  }
}
@media(max-width:900px){
  .case-studies .case-row,
  .case-studies #skill-archive.case-row,
  .case-studies #application.case-row{
    grid-template-columns:1fr!important;
    grid-template-rows:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    align-items:start!important;
  }
  .case-studies .case-main h3.case-title,
  .case-studies .case-insight,
  .case-studies .demo-panel,
  .case-studies .case-main>.button,
  .case-studies .button-row,
  .case-studies .case-main>.demo-note{
    grid-column:1!important;
    grid-row:auto!important;
  }
  .case-studies .demo-panel .demo-result,
  #brandgeo .demo-result,
  #skill-archive .demo-result{
    height:auto!important;
    max-height:300px!important;
    overflow:auto!important;
  }
}

/* Skill demo result: only show score, development advice and recommendation cards. */
#skill-archive .skill-score-panel{
  border:1px solid rgba(212,164,91,.28);
  border-radius:5px;
  background:linear-gradient(135deg,rgba(212,164,91,.12),rgba(8,12,12,.92));
  padding:14px 16px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 14px;
  align-items:center;
}
#skill-archive .skill-score-panel span{
  grid-column:1 / -1;
  font:10px 'DM Mono',monospace;
  color:rgba(212,164,91,.88);
  letter-spacing:.08em;
}
#skill-archive .skill-score-panel strong{
  color:#f2f2ec;
  font-size:42px;
  line-height:1;
  letter-spacing:-.02em;
}
#skill-archive .skill-score-panel small{
  color:#aeb6ad;
  font-size:12px;
  line-height:1.55;
}
#skill-archive .skill-advice-only{
  display:grid;
  gap:8px;
}
#skill-archive .skill-advice-only strong{
  display:block;
  margin:0;
  color:#f2f2ec;
  font-size:16px;
  line-height:1.25;
}
#skill-archive .skill-advice-only .development-order-line{
  color:#c8cec5;
  font-size:13px;
  line-height:1.7;
}
#skill-archive .demo-panel .skill-card-list,
#skill-archive .demo-panel .task-resource-group{
  grid-template-columns:1fr!important;
}
#skill-archive .demo-panel .skill-recommend-card,
#skill-archive .demo-panel .task-resource-card{
  grid-template-columns:1fr!important;
  gap:12px!important;
  align-items:start!important;
}
#skill-archive .demo-panel .task-resource-card > .task-resource-top,
#skill-archive .demo-panel .task-resource-card > .task-resource-description,
#skill-archive .demo-panel .task-resource-card > .task-card-actions{
  grid-column:auto!important;
  grid-row:auto!important;
}
#skill-archive .demo-panel .skill-recommend-card strong,
#skill-archive .demo-panel .task-resource-title strong{
  font-size:22px;
  line-height:1.05;
}
#skill-archive .demo-panel .skill-card-actions,
#skill-archive .demo-panel .task-card-actions{
  justify-content:flex-start!important;
}


/* BrandGeo default report polish: clearer score cards and roomier digits. */
#brandgeo .geo-report-score{padding:16px 14px 14px;min-height:118px;align-content:start}
#brandgeo .geo-report-score strong{font-size:48px;line-height:1.08;white-space:nowrap}
#brandgeo .geo-score-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
#brandgeo .geo-score-card{padding:13px 12px 14px;min-height:118px;align-content:start;overflow:visible}
#brandgeo .geo-score-card__head{align-items:flex-start}
#brandgeo .geo-score-card strong{font-size:22px;line-height:1.08;white-space:nowrap;flex:0 0 auto}
#brandgeo .geo-score-card i{height:8px}
#brandgeo .geo-score-card small{font-size:11px;line-height:1.45}
@media(max-width:900px){
  #brandgeo .geo-report-score{min-height:0}
  #brandgeo .geo-report-score strong{font-size:40px}
  #brandgeo .geo-score-card{min-height:0}
  #brandgeo .geo-score-card strong{font-size:20px}
}

/* Keep BrandGeo metric scores inside their cards on narrow result panels. */
#brandgeo .geo-score-card__head{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon label" "score score";align-items:center;gap:7px 9px}
#brandgeo .geo-score-card__icon{grid-area:icon}
#brandgeo .geo-score-card__label{grid-area:label;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#brandgeo .geo-score-card__head strong{grid-area:score;margin-left:0!important;justify-self:start;max-width:100%;font-size:30px!important;line-height:1.05!important;white-space:nowrap}
#brandgeo .geo-score-card{min-height:132px}

/* Strong override for the metric card header; older flex rule is more specific. */
#brandgeo .geo-score-card div.geo-score-card__head{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;grid-template-areas:"icon label" "score score"!important;align-items:center!important;gap:7px 9px!important;overflow:visible!important}
#brandgeo .geo-score-card div.geo-score-card__head .geo-score-card__icon{grid-area:icon!important}
#brandgeo .geo-score-card div.geo-score-card__head .geo-score-card__label{grid-area:label!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#brandgeo .geo-score-card div.geo-score-card__head strong{grid-area:score!important;margin-left:0!important;justify-self:start!important;max-width:100%!important;font-size:28px!important;line-height:1.05!important;white-space:nowrap!important}

/* Hide the Skill result heading/action row; keep recommendation cards visible. */
#skill-archive .demo-panel .task-resource-heading-row,
#skill-archive .demo-panel .skill-card-header{display:none!important}

/* Skill recommendation cards: horizontal row with sideways scrolling. */
#skill-archive .demo-panel .task-resource-group,
#skill-archive .demo-panel .skill-card-list{display:flex!important;grid-template-columns:none!important;flex-wrap:nowrap!important;gap:12px!important;overflow-x:auto!important;overflow-y:hidden!important;padding:2px 2px 10px!important;scroll-snap-type:x proximity;scrollbar-gutter:auto!important}
#skill-archive .demo-panel .task-resource-group::-webkit-scrollbar,
#skill-archive .demo-panel .skill-card-list::-webkit-scrollbar{height:8px}
#skill-archive .demo-panel .task-resource-group::-webkit-scrollbar-thumb,
#skill-archive .demo-panel .skill-card-list::-webkit-scrollbar-thumb{background:#35515c;border-radius:999px}
#skill-archive .demo-panel .task-resource-card,
#skill-archive .demo-panel .skill-recommend-card{flex:0 0 255px!important;width:255px!important;max-width:255px!important;min-height:210px!important;scroll-snap-align:start!important;align-content:start!important}
#skill-archive .demo-panel .task-resource-title strong,
#skill-archive .demo-panel .skill-recommend-card strong{font-size:24px!important;line-height:1.08!important}
#skill-archive .demo-panel .task-resource-badges,
#skill-archive .demo-panel .skill-card-tags{gap:6px!important}
#skill-archive .demo-panel .task-card-actions,
#skill-archive .demo-panel .skill-card-actions{margin-top:auto!important}
@media(max-width:900px){
  #skill-archive .demo-panel .task-resource-card,
  #skill-archive .demo-panel .skill-recommend-card{flex-basis:235px!important;width:235px!important;max-width:235px!important}
}

/* Compact Skill cards: fit three cards in one visible row, then scroll for extras. */
#skill-archive .demo-panel .task-resource-group,
#skill-archive .demo-panel .skill-card-list{gap:8px!important;padding:2px 2px 8px!important}
#skill-archive .demo-panel .task-resource-card,
#skill-archive .demo-panel .skill-recommend-card{flex:0 0 calc((100% - 16px)/3)!important;width:calc((100% - 16px)/3)!important;max-width:calc((100% - 16px)/3)!important;min-height:174px!important;padding:10px!important;gap:8px!important}
#skill-archive .demo-panel .task-resource-title strong,
#skill-archive .demo-panel .skill-recommend-card strong{font-size:15px!important;line-height:1.15!important;letter-spacing:0!important}
#skill-archive .demo-panel .task-resource-badges,
#skill-archive .demo-panel .skill-card-tags{gap:4px!important}
#skill-archive .demo-panel .task-resource-badges span,
#skill-archive .demo-panel .skill-card-tags span{font-size:9px!important;padding:3px 5px!important;line-height:1.15!important}
#skill-archive .demo-panel .task-resource-description,
#skill-archive .demo-panel .skill-recommend-card p{font-size:10px!important;line-height:1.45!important;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden!important}
#skill-archive .demo-panel .task-card-actions,
#skill-archive .demo-panel .skill-card-actions{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;margin-top:0!important}
#skill-archive .demo-panel .task-card-actions button,
#skill-archive .demo-panel .skill-card-actions button{width:100%!important;min-height:0!important;padding:6px 7px!important;font-size:10px!important;line-height:1.2!important;white-space:normal!important}

/* Compact mode cleanup: tags are too crowded in three-up cards. */
#skill-archive .demo-panel .task-resource-badges,
#skill-archive .demo-panel .skill-card-tags{display:none!important}
#skill-archive .demo-panel .task-resource-card,
#skill-archive .demo-panel .skill-recommend-card{min-height:162px!important}
#skill-archive .demo-panel .task-resource-title,
#skill-archive .demo-panel .skill-card-main{gap:0!important}

/* BrandGeo gap cards: compact three-up row layout. */
#brandgeo .geo-gap-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
#brandgeo .geo-gap-card{min-height:142px!important;padding:10px!important;align-content:start!important;gap:8px!important}
#brandgeo .geo-gap-card__head{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;align-items:start!important}
#brandgeo .geo-gap-card__head strong{font-size:12px!important;line-height:1.35!important}
#brandgeo .geo-gap-card__head small{justify-self:start!important;font-size:9px!important;line-height:1.2!important;white-space:nowrap!important}
#brandgeo .geo-gap-card p{font-size:10px!important;line-height:1.5!important;display:-webkit-box!important;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden!important}
@media(max-width:900px){#brandgeo .geo-gap-list{grid-template-columns:1fr!important}#brandgeo .geo-gap-card{min-height:0!important}}

/* BrandGeo report: put score beside URL and let advantage analysis use the full row. */
#brandgeo .geo-analysis-head{align-items:flex-start}
#brandgeo .geo-analysis-head small.geo-source-with-score{
  max-width:52%!important;
  display:flex!important;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  text-align:right!important;
}
#brandgeo .geo-source-with-score span{
  min-width:0;
  word-break:break-all;
}
#brandgeo .geo-source-with-score b{
  flex:0 0 auto;
  padding:5px 8px;
  border:1px solid rgba(245,184,75,.45);
  border-radius:999px;
  background:rgba(245,184,75,.12);
  color:var(--amber);
  font:700 12px/1 'DM Mono',monospace;
  letter-spacing:0;
}
#brandgeo .geo-report-top.geo-report-top-wide{
  display:block!important;
  grid-template-columns:none!important;
}
#brandgeo .geo-report-top.geo-report-top-wide .geo-overview-copy{
  width:100%;
  box-sizing:border-box;
}
#brandgeo .geo-report-score{display:none!important}
@media(max-width:900px){
  #brandgeo .geo-analysis-head small.geo-source-with-score{
    max-width:none!important;
    justify-content:flex-start;
    text-align:left!important;
    margin-top:8px;
  }
}

/* Hide the proof-of-work block and its nav entry. */
#proof,
.desktop-nav a[href="#proof"]{
  display:none!important;
}

/* Selected works cards: keep tags close to the description and make CTA a centered filled button. */
.projects .project-card{
  display:flex!important;
  flex-direction:column!important;
  border-radius:3px!important;
}
.projects .project-content{
  flex:1 1 auto!important;
  display:flex!important;
  flex-direction:column!important;
  padding-bottom:28px!important;
}
.projects .project-content p{
  min-height:0!important;
  margin-bottom:12px!important;
}
.projects .project-content .tag-row{
  margin-top:0!important;
  margin-bottom:24px!important;
}
.projects .project-content .text-link{
  width:100%!important;
  min-height:42px!important;
  margin:auto 0 0!important;
  padding:11px 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  border-radius:4px!important;
  background:var(--amber)!important;
  border:1px solid rgba(245,184,75,.42)!important;
  color:#15130f!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.04em!important;
  box-shadow:0 12px 30px rgba(212,164,91,.12)!important;
}
.projects .project-content .text-link:hover{
  color:#15130f!important;
  border-color:rgba(245,184,75,.72)!important;
}

.projects .project-card .project-visual{
  border-radius:12px 12px 5px 5px!important;
}
.projects .project-card .cover-image,
.projects .project-card .cover-overlay,
.projects .project-card .project-visual::after{
  border-radius:inherit!important;
}

/* Final case-study grid placement: keep the flow diagram below the headline and before the insight. */
@media(min-width:901px){
  .case-studies .case-row{
    grid-template-rows:auto auto minmax(128px,auto) minmax(100px,auto) auto auto!important;
  }
  .case-studies .case-number{grid-column:1!important;grid-row:1!important}
  .case-studies .case-main .case-label{grid-column:2!important;grid-row:1!important}
  .case-studies .case-main h3.case-title{grid-column:2!important;grid-row:1 / span 2!important}
  .case-studies .case-flow{grid-column:2!important;grid-row:3!important;align-self:start!important;width:100%;max-width:650px;margin:10px 0 0!important}
  .case-studies .case-insight{grid-column:2!important;grid-row:4!important;align-self:start!important;margin:10px 0 0!important}
  .case-studies .case-main>.button,.case-studies .button-row{grid-column:2!important;grid-row:5!important}
  .case-studies .case-main>.demo-note{grid-column:2!important;grid-row:6!important}
  .case-studies .demo-panel{grid-column:3!important;grid-row:1 / span 6!important}
}
@media(max-width:900px){
  .case-studies .case-row{grid-template-rows:auto!important}
  .case-studies .case-number,
  .case-studies .case-main .case-label,
  .case-studies .case-main h3.case-title,
  .case-studies .case-flow,
  .case-studies .case-insight,
  .case-studies .demo-panel,
  .case-studies .case-main>.button,
  .case-studies .button-row,
  .case-studies .case-main>.demo-note{grid-column:1!important;grid-row:auto!important}
  .flow-heading{align-items:flex-start;flex-direction:column;gap:5px}
}

/* Let every case card grow with its flow diagram, insight and CTA instead of clipping the lower content. */
@media(min-width:901px){
  .case-studies .case-row,
  .case-studies #skill-archive.case-row,
  .case-studies #application.case-row{
    height:auto!important;
    min-height:640px!important;
    max-height:none!important;
    overflow:visible!important;
    grid-template-rows:auto auto auto auto auto auto!important;
  }
  .case-studies .demo-panel{
    height:auto!important;
    min-height:360px!important;
    max-height:none!important;
  }
}

/* Compact case-study variant: title, one-line flow, short insight and CTA beside the demo. */
@media(min-width:901px){
  .case-studies .case-row,
  .case-studies #skill-archive.case-row,
  .case-studies #application.case-row{
    min-height:520px!important;
    padding:30px 34px!important;
    grid-template-rows:auto auto auto auto auto auto!important;
  }
  .case-studies .case-main h3.case-title{
    grid-row:1 / span 2!important;
    max-width:610px!important;
  }
  .case-studies .case-flow{
    grid-row:3!important;
    margin:8px 0 0!important;
    padding:12px 14px 13px!important;
  }
  .case-studies .flow-heading{margin-bottom:10px!important}
  .case-studies .flow-heading small{font-size:10px!important}
  .case-studies .flow-steps{grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) 14px minmax(0,1fr) 14px minmax(0,1fr)!important;gap:5px!important}
  .case-studies .flow-steps>div{min-height:72px!important;padding:9px!important;gap:4px!important}
  .case-studies .flow-steps strong{font-size:11px!important;line-height:1.25!important}
  .case-studies .flow-steps span{font-size:9px!important;line-height:1.3!important}
  .case-studies .flow-steps>i{font-size:14px!important}
  .case-studies .case-insight{
    grid-row:4!important;
    margin:8px 0 0!important;
  }
  .case-studies .case-insight p{
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
    font-size:13px!important;
    line-height:1.55!important;
  }
  .case-studies .case-main>.button,.case-studies .button-row{
    grid-row:5!important;
    align-self:end!important;
    margin:8px 0 0!important;
  }
  .case-studies .case-main>.demo-note{grid-row:6!important}
}

@media(max-width:900px){
  .case-studies .case-row{padding:24px 20px!important}
  .case-studies .flow-steps>div{padding:10px!important}
  .case-studies .case-insight p{font-size:14px!important;line-height:1.65!important}
}

/* Lift the floating home control away from the browser edge and mobile dock. */
.back-home-float{bottom:72px!important}
@media(max-width:900px){.back-home-float{bottom:108px!important}}

/* Contact phone blind-box: reveal the number with a small tear-strip interaction. */
.phone-reveal{position:relative;display:block;width:100%;min-height:76px;margin:0 0 28px;padding:0;border:1px solid rgba(212,164,91,.5);border-radius:4px;background:#1b1c19;color:#e7e4d7;cursor:pointer;overflow:hidden;text-align:left}
.phone-strip-label{position:relative;z-index:1;display:block;padding:22px 20px;font:700 13px 'DM Mono',monospace;letter-spacing:.04em;color:#d4a45b}
.phone-strip-tear{position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 8px,rgba(212,164,91,.18) 8px 10px),#c99a55;clip-path:polygon(0 0,100% 0,96% 100%,0 88%);transform:translateX(0);transition:transform .6s cubic-bezier(.65,0,.35,1);z-index:2}
.phone-strip-tear::after{content:'点击撕开';position:absolute;right:20px;top:50%;transform:translateY(-50%);font:700 12px 'DM Mono',monospace;color:#17130f}
.phone-value{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transform:translateY(8px);font:600 25px 'DM Mono',monospace;letter-spacing:.04em;color:var(--amber);transition:opacity .25s ease .35s,transform .35s ease .35s;z-index:1}
.phone-reveal.is-revealed .phone-strip-tear{animation:tearPaper .78s cubic-bezier(.65,0,.35,1) forwards;transform-origin:left center}
.phone-reveal.is-revealed .phone-strip-label{opacity:0}
.phone-reveal.is-revealed .phone-value{opacity:1;transform:translateY(0)}
.phone-reveal:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
@media(max-width:480px){.phone-value{font-size:20px}.phone-strip-label{font-size:11px}}
@keyframes tearPaper{
  0%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:rotate(0) scaleX(1);opacity:1}
  32%{clip-path:polygon(0 0,94% 4%,88% 18%,94% 34%,82% 49%,89% 66%,76% 84%,82% 100%,0 100%);transform:rotate(-1deg) scaleX(.94);opacity:1}
  68%{clip-path:polygon(0 0,66% 7%,56% 23%,64% 40%,48% 57%,54% 74%,36% 91%,44% 100%,0 100%);transform:rotate(-5deg) scaleX(.62);opacity:.92}
  100%{clip-path:polygon(0 0,24% 8%,16% 25%,23% 43%,10% 59%,17% 77%,4% 92%,9% 100%,0 100%);transform:rotate(-11deg) scaleX(.24);opacity:0}
}
@media(prefers-reduced-motion:reduce){.phone-reveal.is-revealed .phone-strip-tear{animation:none;clip-path:polygon(0 0,24% 8%,16% 25%,23% 43%,10% 59%,17% 77%,4% 92%,9% 100%,0 100%);transform:none;opacity:0}}

/* Tabbed case studies: keep one complete project in view and reduce page length. */
.case-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 22px;border-bottom:1px solid var(--line);padding-bottom:18px}
.case-tab{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;text-align:left;padding:14px 16px;border:1px solid #303631;border-radius:4px;background:#101211;color:#aeb6ad;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.case-tab span{grid-row:1 / span 2;font:11px 'DM Mono',monospace;color:#7f897f}
.case-tab strong{font-size:14px;line-height:1.3;color:#d7dbd3}
.case-tab small{margin-top:3px;font:9px 'DM Mono',monospace;letter-spacing:.06em;color:#7f897f}
.case-tab:hover{border-color:#555f56;color:var(--text)}
.case-tab.is-active{border-color:var(--amber);background:rgba(212,164,91,.1);box-shadow:inset 0 -2px var(--amber)}
.case-tab.is-active span,.case-tab.is-active small{color:var(--amber)}
.case-row[hidden]{display:none!important}
.case-studies .case-row{animation:none!important}
.case-studies .demo-header span{color:var(--amber);font-weight:700;letter-spacing:.08em}
.case-studies .demo-header small{color:#a4ada2}
.case-studies,.case-studies .case-row,.case-studies .demo-panel,.case-studies .demo-input-row,.case-studies .filter-row{overflow:visible!important}
.case-studies .case-row{isolation:isolate}
.case-studies .demo-input-row,.case-studies .filter-row{position:relative;z-index:50}
.case-studies .demo-action-guide{position:relative;display:flex;flex:0 0 auto;align-items:center}
.case-studies .demo-float-guide{position:absolute;z-index:9999;left:calc(100% + 14px);top:50%;display:inline-flex;align-items:center;gap:7px;padding:6px 11px 6px 9px;border:1px solid rgba(212,164,91,.46);border-radius:999px;background:rgba(11,12,12,.96);box-shadow:0 8px 24px rgba(0,0,0,.38);color:var(--amber);font:700 10px 'DM Mono',monospace;letter-spacing:.04em;white-space:nowrap;pointer-events:none;transform:translateY(-50%);animation:demoGuidePulse 1.8s ease-in-out infinite}
#application .demo-float-guide{display:none!important}
.case-studies .demo-float-guide i{display:inline-block;font-style:normal;font-size:17px;line-height:1;animation:demoGuideNudge 1.8s ease-in-out infinite}
@keyframes demoGuidePulse{0%,100%{opacity:.58}50%{opacity:1}}
@keyframes demoGuideNudge{0%,100%{transform:translate(0,0)}50%{transform:translate(3px,3px)}}
@media(max-width:900px){.case-studies .demo-float-guide{position:static;transform:none;justify-self:end;align-self:start;margin:8px 0 0;font-size:9px}.case-studies .demo-input-row,.case-studies .filter-row{flex-wrap:wrap}.case-studies .demo-action-guide{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.case-studies .demo-float-guide,.case-studies .demo-float-guide i{animation:none}}
.demo-float-guide.is-portal{position:fixed!important;z-index:2147483647!important;display:inline-flex;align-items:center;gap:7px;padding:6px 11px 6px 9px;border:1px solid rgba(212,164,91,.46);border-radius:999px;background:rgba(11,12,12,.96);box-shadow:0 8px 24px rgba(0,0,0,.38);color:var(--amber);font:700 10px 'DM Mono',monospace;letter-spacing:.04em;white-space:nowrap;pointer-events:none;transform:translateY(-50%);animation:demoGuidePulse 1.8s ease-in-out infinite;overflow:visible!important;clip-path:none!important}
.demo-float-guide.is-portal[hidden]{display:none!important}
.demo-float-guide.is-portal i{display:inline-block;font-style:normal;font-size:17px;line-height:1;animation:demoGuideNudge 1.8s ease-in-out infinite}
@media(max-width:900px){.demo-float-guide.is-portal{display:none!important}}
@media(max-width:900px){
  .case-tabs{grid-template-columns:1fr;margin-bottom:16px;padding-bottom:14px}
  .case-tab{min-height:58px}
}
