/* One palette contract for both modes; photographs keep their own contrast. */
:root,:root[data-theme="dark"]{
  --bg:#050505;--ink:#f4f4f0;--muted:#a9aaa6;--line:#34362d;
  --surface:#10110f;--surface-raised:#171914;--glass:#171913a8;
  --acid:#dfff00;--accent:#dfff00;--accent-secondary:#69e5ff;
  --accent-ink:#dfff00;--secondary-ink:#69e5ff;
  --stage:#090a08;--stage-secondary:#081316;--border-accent:#747e31;
  --bg-rgb:5,5,5;--light-rgb:244,244,240;--field-primary:223,255,0;--field-secondary:105,229,255;
  color-scheme:dark;background:var(--bg);color:var(--ink);
}
:root[data-theme="light"]{
  --bg:#f5f5f2;--ink:#141511;--muted:#51534e;--line:#c9cdc2;
  --surface:#fff;--surface-raised:#eceee7;--glass:#ffffffba;
  --accent-ink:#566000;--secondary-ink:#00667d;
  --stage:#f0f1eb;--stage-secondary:#eaf5f7;--border-accent:#939c62;
  --bg-rgb:245,245,242;--light-rgb:20,21,17;--field-primary:90,105,0;--field-secondary:0,102,125;
  color-scheme:light;
}
body.vision{--bg:inherit;--ink:inherit;--muted:inherit;--line:inherit;--acid:inherit;background:var(--bg);color:var(--ink);isolation:isolate}
::selection{background:var(--accent);color:#141511}
.vision-header,.vision-work,.vision-contact,.vision-footer{position:relative;z-index:2}
.vision-hero{z-index:2}
.vision-header{gap:20px}
.header-actions{display:flex;align-items:center;gap:12px}
.vision-header nav{background:var(--glass);border-color:var(--line);box-shadow:inset 0 1px 0 rgba(var(--light-rgb),.07)}
.vision-header nav a{transition:color .2s}
.vision-header nav a:hover{color:var(--accent-ink)}
.vision-signature>span,.vision-eyebrow,.vision-hero-copy>p,.hero-foot,.vision-work-intro,.vision-work-intro>span:last-child,.case-kind,.case-kind>span,.case-order,.case-summary>div h3,.case-bottom h3,.case-bottom li>small,.contact-overline,.vision-contact>p,.vision-footer{color:var(--muted)}
.vision-dot,.case-arrow,.vision-contact .contact-arrow{color:var(--accent-ink)}
.vision-eyebrow{display:flex;align-items:center;gap:10px}
.vision-eyebrow:before{content:'';width:18px;height:8px;flex:0 0 auto;background:var(--accent);box-shadow:7px -5px 0 var(--accent-secondary);transform:skew(-20deg)}
.vision-signature{color:var(--ink)}
.vision-header:after{background:linear-gradient(90deg,var(--accent),var(--accent-secondary));box-shadow:0 0 12px #dfff0070}
.explore-symbol{border-color:var(--accent-ink);color:var(--accent-ink);background:var(--bg)}
.explore-work:hover .explore-symbol{background:var(--accent);border-color:var(--accent);color:#141511;box-shadow:0 0 35px #dfff0025}
.explore-work small{color:var(--muted)}
.vision-work-intro,.vision-project+.vision-project,.case-bottom,.vision-contact,.vision-footer{border-color:var(--line)}
.case-summary>p,.case-summary>div p,.case-bottom>div>p,.case-bottom li>span{color:var(--ink)}
.case-kind{color:var(--accent-ink)}
.vision-project#common .case-kind,.vision-project#common .case-arrow{color:var(--secondary-ink)}
.contact-detail{border-color:var(--accent-ink)}
.vision-contact .fracture:hover{color:var(--accent-ink)}
.fracture:focus-visible,a:focus-visible,.theme-toggle:focus-visible{outline:2px solid var(--accent-ink);outline-offset:6px}
.vision-header nav a:focus-visible{outline-offset:3px}
.theme-toggle{display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 17px;border:1px solid var(--line);border-radius:50px;background:var(--surface);color:var(--ink);font:400 .875rem var(--body);cursor:pointer;isolation:isolate;transition:border-color .25s,background .25s,color .25s;flex-shrink:0}
.theme-toggle:hover{background:var(--accent);color:#141511;border-color:var(--accent)}
.theme-icon{position:relative;width:19px;height:19px;display:block}
.theme-icon svg{position:absolute;inset:0;width:100%;height:100%;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .25s}
.theme-moon{opacity:0;transform:rotate(-80deg) scale(.4)}
[data-theme="light"] .theme-sun{opacity:0;transform:rotate(100deg) scale(.4)}
[data-theme="light"] .theme-moon{opacity:1;transform:rotate(0) scale(1)}
.theme-toggle[aria-busy="true"]{cursor:progress}

/* Noninteractive ambient geometry lives under the whole document. */
.ambient-field{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict;mask-image:linear-gradient(90deg,#000 0%,#0009 35%,#0006 62%,#000 100%)}
.ambient-canvas{width:100%;height:100%;display:block;opacity:.85}
.ambient-grain{position:absolute;inset:0;opacity:.07;background-image:radial-gradient(rgba(var(--light-rgb),.9) .45px,transparent .65px);background-size:4px 4px;mask-image:linear-gradient(90deg,#000,transparent 70%)}
.edge-signals{position:fixed;right:13px;top:38%;z-index:1;pointer-events:none;display:grid;gap:8px;opacity:.7}
.edge-signals i{display:block;width:2px;height:17px;background:var(--accent);box-shadow:0 0 9px var(--accent)}
.edge-signals i:nth-child(2){height:57px;background:var(--accent-secondary);box-shadow:0 0 10px var(--accent-secondary);transform:translateY(calc(var(--ambient-scroll,0)*-12px))}
.edge-signals i:nth-child(3){height:7px;transform:translateY(calc(var(--ambient-scroll,0)*12px))}
.portrait-surface{background:#111}
.portrait-shade{background:linear-gradient(90deg,rgba(var(--bg-rgb),1) 0%,rgba(var(--bg-rgb),.15) 28%,transparent 63%),linear-gradient(0deg,rgba(var(--bg-rgb),.4),transparent 22%)}
.portrait-caption,.hero-interaction{color:#eee;filter:drop-shadow(0 1px 4px #000)}
.decision-line path{stroke:var(--accent-ink)}
.decision-line circle{fill:var(--accent-secondary)}
.lens-reticle{border-color:#dfff00a0}
.lens-reticle:before,.lens-reticle:after{background:#dfff00}
.photo-case-shade{background:linear-gradient(180deg,#05050580,transparent 40%,#050505ad)}
.product-overlay{background:#10110fdb;border-color:#dfff0055;color:#f4f4f0}
.product-overlay>span{color:#d2d8bd}
.product-overlay i{color:var(--accent)}
.photo-case-caption{color:#f4f4f0}

/* Research: a vivid output surface against a near-black input stack. */
.system-stage{border-color:var(--line);background:var(--stage)}
.stage-caption,.system-stage figcaption,.object-eyebrow,.source-sheet small{color:var(--muted)}
.stage-symbol,.stage-heading>p>span{color:var(--accent-ink)}
.source-object-inner{background:var(--surface);border-color:var(--border-accent);box-shadow:8px 12px 0 -5px var(--surface),8px 12px 0 -4px var(--border-accent),16px 24px 0 -10px var(--surface),16px 24px 0 -9px var(--line)}
.source-sheet{border-color:var(--line)}
.source-sheet>span{color:var(--accent-ink)}
.source-sheet b{color:var(--ink)}
.trace-link path,.operation-line path{stroke:var(--accent-ink)}
.trace-base{stroke:var(--line)!important;opacity:1}
.trace-link>span{color:var(--accent-ink)}
.answer-object-inner{background:var(--accent);border-color:var(--accent);color:#141511;box-shadow:0 20px 70px #dfff0012,inset 0 1px 0 #ffffff50}
.answer-object .object-eyebrow,.answer-end{color:#3d4510}
.answer-object h3{color:#141511}
.answer-diagram i{background:#4b541f66}
.citation-pills>span{border-color:#879a27;color:#22280d}
.answer-dot{background:#263206;box-shadow:none}
.answer-object-inner:after{background:radial-gradient(circle at var(--light-x,60%) var(--light-y,0%),#ffffff55,transparent 65%)}

/* Independent work: electric cyan, with one deliberately saturated card. */
.operation-stage{background:var(--stage-secondary);border-color:var(--line)}
.operation-stage .stage-caption,.operation-stage figcaption{color:var(--muted)}
.operation-heading>span:first-child{color:var(--secondary-ink)}
.operation-word{color:var(--ink)}
.operation-word>span,.operation-number,.operation-line path{color:var(--secondary-ink);stroke:var(--secondary-ink)}
.operation-line .trace-base{stroke:var(--line)!important}
.operation-panel>div{background:var(--surface);border-color:var(--secondary-ink);box-shadow:0 10px 20px #0002}
.operation-panel h3{color:var(--ink)}
.operation-kind{color:var(--ink)}
.operation-panel p{color:var(--muted)}
.operation-panel:nth-of-type(2)>div{background:var(--accent-secondary);border-color:var(--accent-secondary);color:#071b20;box-shadow:0 20px 70px #69e5ff20}
.operation-panel:nth-of-type(2) h3,.operation-panel:nth-of-type(2) .operation-kind,.operation-panel:nth-of-type(2) .operation-number{color:#071b20}
.operation-panel:nth-of-type(2) p{color:#16424b}
.operation-panel>div:after{background:radial-gradient(circle at var(--light-x,60%) var(--light-y,0%),rgba(var(--light-rgb),.09),transparent 60%)}
.operation-panel:nth-of-type(2)>div:after{background:radial-gradient(circle at var(--light-x,60%) var(--light-y,0%),#ffffff40,transparent 60%)}

/* The same fractured glyph geometry remains legible over a light background. */
[data-theme="light"] .fracture-copy:not(.fracture-white),[data-theme="light"] .fracture-bar{mix-blend-mode:multiply}
[data-theme="light"] .fracture[data-frame="2"] .fracture-white,[data-theme="light"] .fracture[data-frame="4"] .fracture-white{color:var(--ink)}
[data-theme="light"] .fracture[data-frame="1"] .fracture-white{color:var(--secondary-ink)}
[data-theme="light"] .fracture-particle[data-piece="3"],[data-theme="light"] .fracture-particle[data-piece="13"]{background:var(--ink)}
[data-theme="light"] .ambient-canvas{opacity:.45}
[data-theme="light"] .ambient-grain{opacity:.035}
[data-theme="light"] .vision-header:after{box-shadow:none}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-old(root){z-index:1}
::view-transition-new(root){z-index:2;animation:theme-aperture .65s cubic-bezier(.16,1,.3,1) both}
@keyframes theme-aperture{from{clip-path:circle(0 at var(--theme-x,95vw) var(--theme-y,40px))}to{clip-path:circle(150vmax at var(--theme-x,95vw) var(--theme-y,40px))}}
@media(max-width:1100px){.vision-signature>span{display:none}.vision-header nav{gap:25px}.header-actions{gap:9px}}
@media(max-width:760px){
  .vision-header{gap:12px}.header-actions{gap:8px}.vision-header nav{gap:14px;padding-inline:13px}
  .theme-toggle{width:44px;height:44px;min-height:44px;padding:0}.theme-label{display:none}
  .vision-eyebrow{font-size:.75rem;gap:9px}.vision-eyebrow:before{width:12px;height:6px;box-shadow:5px -4px 0 var(--accent-secondary)}
  .portrait-shade{background:linear-gradient(180deg,rgba(var(--bg-rgb),.15),transparent 25%,rgba(var(--bg-rgb),.4)),linear-gradient(90deg,rgba(var(--bg-rgb),1) 0%,rgba(var(--bg-rgb),.12) 33%,transparent 70%)}
  .trace-link>span{background:var(--stage)}.edge-signals{right:6px;opacity:.45}
  .ambient-field{mask-image:linear-gradient(90deg,#000b,#0003 40%,#0007)}.ambient-canvas{opacity:.65}
}
@media(max-width:380px){.header-actions{gap:6px}.vision-header nav{gap:12px;padding-inline:11px}.vision-signature{font-size:1rem}}
@media(max-width:350px){.vision-header nav>a:first-child{display:none}.vision-eyebrow{font-size:.75rem;letter-spacing:-.025em}}
@media(prefers-reduced-motion:reduce){.theme-icon svg{transition:none}.edge-signals i{transform:none!important}::view-transition-new(root){animation:none}.ambient-grain{display:none}}
@media(max-width:760px){
  .portrait-shade{background:linear-gradient(180deg,rgba(var(--bg-rgb),.94),rgba(var(--bg-rgb),.9) 18%,transparent 38%),linear-gradient(0deg,rgba(var(--bg-rgb),.75),transparent 28%),linear-gradient(90deg,rgba(var(--bg-rgb),1),rgba(var(--bg-rgb),.12) 40%,transparent 75%)}
  .explore-work{padding:8px 18px 8px 0;background:linear-gradient(90deg,rgba(var(--bg-rgb),.95) 0%,rgba(var(--bg-rgb),.85) 74%,transparent 100%)}
}
