/* Local Heritage & Data Consulting concept. Existing interactions are unchanged. */
:root{--paper:#f7f3ec;--ink:#263238;--blue:#013762;--muted:#60635f;--rule:#67533f30;--copper:#815b40}
:root{--type-label:17px;--type-ui:18px;--type-body:20px;--type-lead:28px;--type-ui-title:24px;--type-subtitle:34px;--type-section:clamp(48px,5vw,80px);--section-space:clamp(96px,8vw,128px)}
body{background:var(--paper)}
::selection{background:#e2d4c2;color:var(--blue)}
.hero{background:radial-gradient(ellipse at 51% 47%,#fffcf680,transparent 65%);display:grid;grid-template-columns:minmax(280px,1fr) minmax(420px,1.45fr) minmax(210px,.7fr);column-gap:clamp(32px,3vw,64px);padding-top:40px;padding-bottom:72px}
.hero-topline{gap:32px;grid-column:1/-1;grid-row:1}
.hero-topline i{background:var(--copper)}
.hero h1{grid-column:1/-1;grid-row:2;margin:56px 0 64px}
.hero h1 .title-word{font-family:var(--serif);font-weight:400;text-transform:none;font-size:clamp(80px,13.2vw,240px);letter-spacing:-.055em;line-height:1.12;color:var(--blue)}
.title-prefix{letter-spacing:.13em;color:var(--muted);margin-bottom:24px}
.hero-intro{position:relative;top:auto;left:auto;grid-column:1;grid-row:3;align-self:start;display:block;width:auto;max-width:360px;margin:0}
.hero-intro p{font-size:var(--type-body);line-height:1.75;margin:0}
.hero-intro p:first-of-type{font-family:var(--serif);font-size:var(--type-lead);letter-spacing:-.025em;line-height:1.5;margin-bottom:24px}
.hero-intro .index-mark{color:var(--muted);margin-bottom:24px}
.hero-intro .quiet-link{margin-top:32px}
#block-art{grid-column:1/-1;grid-row:3;margin-top:0}
.scene-nav{position:relative;top:auto;right:auto;grid-column:3;grid-row:3;align-self:start;justify-self:end;width:100%;max-width:230px;margin:0}
.scene-nav button{padding:24px 0}
.stage-controls{grid-column:1/-1;grid-row:4;margin-top:32px}
.record-workflow{grid-column:1/-1;grid-row:5;width:100%;margin-top:40px}
.scene-panel{grid-column:1/-1;grid-row:6;width:100%;max-width:740px;margin:40px auto 48px;gap:32px 48px}
.reference-tools{grid-column:1/-1;grid-row:7;width:100%;margin-bottom:48px}
.model-foundation{grid-column:1/-1;grid-row:8;margin-top:16px;padding-top:32px}
.quiet-link{padding-bottom:5px;border-bottom:1px solid #a3755260}
.perspective{background:#eee7dc;padding-top:var(--section-space);padding-bottom:var(--section-space)}
#perspective h2,#project .project-title h2,#contact h2{font-family:var(--serif);font-weight:400;font-size:var(--type-section);letter-spacing:-.04em;line-height:1.12;margin:0}
.perspective h2 em,#contact h2 em{font-style:normal}
.services details>div h3,.project-story h3,.scene-panel>span{font-family:var(--serif);font-weight:400;font-size:var(--type-subtitle);letter-spacing:-.025em;line-height:1.25}
.services details>div h3,.project-story h3{margin:0 0 24px}
.services details>div p,.project-story>p,.scene-panel p{font-size:var(--type-body);line-height:1.75;margin:0}
.perspective-opening{gap:48px 9vw}
.perspective-opening>p{font-size:var(--type-lead);line-height:1.6;margin:0;max-width:30ch}
.services{margin-top:72px;margin-bottom:64px}
.services summary{padding-top:28px;padding-bottom:28px}
.services details>div{padding-bottom:40px}
.services details>div p{max-width:52ch}
.think-tank{padding-top:32px}
.service-num{color:var(--copper)}
.layer-scrubber,.preview-asset-status{font-size:var(--type-label);line-height:1.5}
.photo-reference{background:#f7f3ecf2}
.chain-block{background:#eee9e1;border-color:#b7b4aa}
.chain-block>span{color:#606762}
.chain-block i{background:#b9b4a9}
.model-chain:before{background:#9a9486}
.project{padding-top:var(--section-space)}
.project-title{gap:40px 7vw}
.project-title>p{font-size:var(--type-body);line-height:1.75;margin:0;max-width:42ch}
.project-layout{margin-top:72px;gap:clamp(40px,5vw,80px)}
.project-story>.eyebrow{margin-bottom:24px}
.project-story>p{margin-bottom:32px}
.view-switch{margin-top:32px;margin-bottom:40px}
.project-principle{margin-top:40px;padding-top:24px}
.project-foot{padding-top:40px;padding-bottom:48px}
#contact{padding-top:var(--section-space);padding-bottom:64px}
#perspective .section-heading,#project .section-heading,#contact .section-heading{margin-bottom:64px}
#contact h2{max-width:1100px}
.referral-note{max-width:620px;margin:40px 0 0;color:var(--muted);font-size:var(--type-body);line-height:1.75}
#contact .email{margin-top:32px}
.contact-info{margin-top:64px;padding-top:32px}
.contact-info strong{font-weight:500}
/* Drawn icons are independent of Safari's text and emoji fonts. */
.line-icon,.menu-lines{display:inline-block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.12em;flex:none;overflow:visible}
.menu-lines{width:24px;height:24px;vertical-align:middle}
.mobile-talk,.project-foot>a,.contact-info>a{align-items:center;justify-content:center}
#token-reset .line-icon{margin-left:8px}
#heritage-continuity h3{color:var(--blue)}
/* The architectural caption has its own lane, below all moving layers. */
.ownership-legend{grid-column:1/-1;grid-row:4;justify-self:center;display:flex;align-items:center;justify-content:center;gap:18px;margin:24px 0 0;color:var(--muted);font-size:var(--type-label);line-height:1.5;letter-spacing:.02em;pointer-events:none}
.ownership-legend i{width:24px;border-top:1px solid var(--rule)}
.stage-controls{grid-row:5}.record-workflow{grid-row:6}.scene-panel{grid-row:7}.reference-tools{grid-row:8}.model-foundation{grid-row:9}
/* Persistent upper-left navigation, with native disclosure keyboard support. */
html{scroll-padding-top:120px}
header{position:sticky;top:0;z-index:50;background:#f7f3ecf5}
.header-start{display:flex;align-items:center;gap:clamp(24px,2.4vw,40px)}
header>nav[aria-label="Main navigation"]{margin-left:auto;margin-right:clamp(28px,3vw,48px)}
header>.brand{margin-left:auto;order:3;flex:none}
.topic-menu{position:relative;color:var(--blue)}
.topic-menu>summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:44px;font-size:var(--type-ui);line-height:1.5;cursor:pointer}
.topic-menu>summary::-webkit-details-marker{display:none}
.topic-menu>summary:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
.topic-menu[open]>.topic-links{display:block}
.topic-menu>.topic-links{position:absolute;top:calc(100% + 18px);left:0;display:block;width:min(420px,90vw);max-height:calc(100vh - 128px);max-height:calc(100dvh - 128px);overflow:auto;padding:18px 24px;background:var(--paper);border:1px solid var(--rule);box-shadow:0 20px 60px #26323815}
.topic-menu .topic-links a{display:flex;align-items:baseline;gap:16px;position:static;padding:15px 0;font-size:var(--type-ui);line-height:1.5;border-bottom:1px solid var(--rule)}
.topic-links a:after{display:none}.topic-links a:hover,.topic-links a:focus-visible{color:var(--copper)}
.topic-links .topic-overview{font-size:var(--type-label);color:var(--muted);padding-bottom:18px}
.topic-index{flex:0 0 28px;font-size:var(--type-label);color:var(--copper);font-variant-numeric:tabular-nums}
.topic-subsections{padding:4px 0 8px 24px}.topic-subsections a{padding:12px 0;border:0}
.topic-links>a:last-child{border:0}.services details{scroll-margin-top:20px}
@media(max-width:1279px){.ownership-legend{order:4;align-self:center}.scene-nav{order:5}.stage-controls{order:6}.record-workflow{order:7}.scene-panel{order:8}.reference-tools{order:9}.model-foundation{order:10}}
@media(max-width:1100px){header>nav[aria-label="Main navigation"]{display:none}}
@media(max-width:800px){header .header-start{width:auto;gap:18px}header .brand img{width:150px}header>nav[aria-label="Main navigation"],header>.mobile-talk{display:none}}
@media(max-width:640px){.ownership-legend{gap:12px;max-width:100%;margin-top:24px}.ownership-legend i{width:12px}.topic-menu>.topic-links{width:88vw;padding:14px 20px}.topic-subsections{padding-left:18px}header .brand img{width:142px}.scene-nav .view-num{font-size:var(--type-label)}}
@media(max-width:1279px){
 :root{--section-space:88px}
 .hero{display:flex;flex-direction:column;padding-top:32px;padding-bottom:56px}
 .hero-topline{order:0}.hero-topline>span:first-child{gap:10px 14px}.hero-topline>span:last-child{display:none}
 .hero h1{order:1;margin:44px 0 0}.hero h1 .title-word{font-size:13.8vw}
 .hero-intro{order:2;position:static;display:grid;grid-template-columns:1fr 1fr;gap:24px 48px;width:100%;max-width:760px;margin:40px auto 48px}
 .hero-intro .index-mark{grid-column:1/-1;margin:0}.hero-intro p:first-of-type{margin:0}.hero-intro .quiet-link{grid-column:1/-1;justify-self:start;margin-top:8px}
 #block-art{order:3;margin:0;width:100%}
 .scene-nav{order:4;position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;width:100%;margin:24px 0 0;border-bottom:1px solid var(--rule)}
 .scene-nav button{border-bottom:0;padding:24px 0;gap:16px}.scene-nav i{right:16px}
 .stage-controls{order:5;margin-top:32px}
 .record-workflow{order:6;max-width:740px;margin:40px auto}
 .scene-panel{order:7;max-width:740px;margin:40px auto 48px}
 .reference-tools{order:8;max-width:740px}
 .model-foundation{order:9}
 .perspective-opening{gap:40px 7vw}.project-title{grid-template-columns:1fr;gap:40px}.project-title>p{max-width:48ch}
}
@media(max-width:800px){
 :root{--type-section:clamp(44px,7vw,56px);--type-subtitle:30px;--section-space:72px}
 .perspective-opening{grid-template-columns:1fr;gap:40px}.perspective-opening>p{max-width:36ch}
 .project-layout{grid-template-columns:1fr;gap:40px;margin-top:48px}
 .project-visual{position:relative;top:auto}
 .project-story{padding-top:0;padding-bottom:40px}
}
@media(max-width:640px){
 :root{--type-label:16px;--type-ui:18px;--type-body:18px;--type-lead:24px;--type-ui-title:22px;--type-subtitle:28px;--type-section:44px;--section-space:64px}
 .hero{padding-top:28px;padding-bottom:48px}.hero-topline{gap:16px;letter-spacing:.025em}.hero-topline>span:first-child{max-width:100%;line-height:1.7}
 .hero h1{margin-top:40px}.hero h1 .title-word{font-size:clamp(56px,14.2vw,90px);line-height:1.15}.title-prefix{letter-spacing:.09em;margin-bottom:20px}
 .hero-intro{grid-template-columns:1fr;max-width:100%;gap:24px;margin:40px 0 48px}.hero-intro .quiet-link{margin-top:8px}
 #block-art{width:116%;margin:0 -8%}
 .scene-nav{margin-top:24px}.scene-nav button{padding:22px 0;gap:10px}.scene-nav strong{font-size:var(--type-ui)}.scene-nav i{display:none}
 .stage-controls{margin-top:32px;gap:24px}
 .scene-panel{margin:32px 0 40px;gap:24px}
 .model-foundation{padding-top:28px}.model-topline{gap:20px}.model-topline>span:last-child{max-width:140px}
 .record-steps{grid-template-columns:1fr;gap:24px}.record-steps li{padding-top:14px}.record-steps strong{font-size:var(--type-ui-title)}
 #perspective .section-heading,#project .section-heading,#contact .section-heading{margin-bottom:40px}
 .section-heading{gap:20px}.section-heading>span:last-child{max-width:145px}
 .services{margin-top:48px;margin-bottom:48px}.services summary{padding-top:24px;padding-bottom:24px}.services details>div{padding-bottom:36px}
 .services details>div h3,.project-story h3{margin-bottom:24px}
 .think-tank{padding-top:24px}.research-note{margin-bottom:48px}
 .project-title{gap:32px}.project-layout{margin-top:48px;gap:32px}.project-story>.eyebrow{margin-bottom:24px}
 .tokenization-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}.tokenization-steps strong{font-size:var(--type-ui)}
 .project-foot{padding-top:32px;padding-bottom:40px}
 #contact{padding-bottom:48px}.referral-note{margin-top:32px}#contact .email{margin-top:32px}.contact-info{margin-top:48px;padding-top:28px}
}
/* A quiet icon-only menu retains its accessible name and generous hit area. */
.topic-menu>summary{min-width:44px;justify-content:center}
/* The full fingerprint is a projection of the current illustrative record. */
.reveal-proof{grid-column:1/-1;grid-row:5;justify-self:center;width:100%;max-width:740px;margin:32px 0 0;padding:24px 28px;border:1px solid var(--rule);background:#fffaf380;animation:proof-appear .35s ease-out}
.reveal-proof-heading{display:flex;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;color:var(--muted);font-size:var(--type-label);line-height:1.5}
.reveal-proof output{display:block;margin:20px 0 0;color:var(--blue);font:var(--type-ui)/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;user-select:all}
.reveal-proof p{font-size:var(--type-label);line-height:1.5;color:var(--muted);margin:16px 0 0}
.stage-controls{grid-row:6}.record-workflow{grid-row:7}.scene-panel{grid-row:8}.reference-tools{grid-row:9}.model-foundation{grid-row:10}
.about{padding:var(--section-space) 8vw;background:var(--paper)}
.about .section-heading{margin-bottom:64px}
.about-opening{display:grid;grid-template-columns:1.2fr 1fr;gap:48px 9vw;align-items:start}
#about h2{font-family:var(--serif);font-size:var(--type-section);font-weight:400;line-height:1.12;letter-spacing:-.04em;margin:0}
#about h2 em{font-style:normal;color:var(--blue)}
.about-copy p{font-size:var(--type-body);line-height:1.75;max-width:45ch;margin:0;color:var(--muted)}
.about-copy p+p{margin-top:24px}
#contact{border-top:1px solid var(--rule)}
@keyframes proof-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1279px){.ownership-legend{display:none}.reveal-proof{order:4;align-self:center}.scene-nav{order:5}.stage-controls{order:6}.record-workflow{order:7}.scene-panel{order:8}.reference-tools{order:9}.model-foundation{order:10}}
@media(max-width:1100px){.about{padding-left:6vw;padding-right:6vw}}
@media(max-width:800px){.about-opening{grid-template-columns:1fr;gap:40px}}
@media(max-width:640px){.reveal-proof{padding:20px;margin-top:28px}.reveal-proof-heading{gap:10px}.about .section-heading{margin-bottom:40px}.about-opening{gap:32px}}
@media(prefers-reduced-motion:reduce){.reveal-proof{animation:none}}
/* Navigation and subject labels are editorial; numbers belong to process steps. */
.services summary{grid-template-columns:minmax(0,1fr) 22px}
.services details>div{padding-left:0}
.scene-nav button{gap:0}
.topic-links a{gap:0}
/* iPhone portrait, landscape and safe-area refinements preserve text sizes. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
header{padding-left:max(5vw,env(safe-area-inset-left));padding-right:max(5vw,env(safe-area-inset-right))}
.topic-menu>.topic-links{max-height:calc(100dvh - 128px - env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.topic-menu>summary{min-height:48px;min-width:48px}
.topic-links a{min-height:48px}
.layer-scrubber input[type=range]{height:48px;touch-action:none}
.contact-info>a{height:44px;width:44px}
footer{padding-bottom:max(25px,env(safe-area-inset-bottom))}
@media(max-width:800px){
 header{padding-left:max(6vw,env(safe-area-inset-left));padding-right:max(6vw,env(safe-area-inset-right))}
 .hero,.perspective,.project,.about,.contact{padding-left:max(6vw,env(safe-area-inset-left));padding-right:max(6vw,env(safe-area-inset-right))}
 .contact-info{grid-template-columns:minmax(0,1fr) 44px}
 .topic-menu>.topic-links{width:min(420px,calc(100vw - max(6vw,env(safe-area-inset-left)) - max(6vw,env(safe-area-inset-right))));max-height:calc(100dvh - 116px - env(safe-area-inset-bottom))}
}
@media(max-width:640px){
 .layer-scrubber{left:8%;right:8%}
 .layer-scrubber input[type=range]::-webkit-slider-thumb{width:38px;height:38px;margin-top:-18px}
 .layer-scrubber input[type=range]::-moz-range-thumb{width:38px;height:38px}
 .scene-nav button{min-height:64px;align-items:center;text-align:center}
 .scene-nav strong{font-size:var(--type-ui)}
}
@media(orientation:landscape) and (max-height:600px) and (max-width:1100px){
 header{height:68px;padding-left:max(5vw,env(safe-area-inset-left));padding-right:max(5vw,env(safe-area-inset-right))}
 .hero,.perspective,.project,.about,.contact{padding-left:max(6vw,env(safe-area-inset-left));padding-right:max(6vw,env(safe-area-inset-right))}
 .hero-intro{grid-template-columns:1fr;max-width:600px;gap:20px;margin:32px auto 40px}
 .hero h1{margin-top:32px}.hero h1 .title-word{font-size:clamp(72px,12vw,110px)}
 #block-art{height:560px}
 .asset-light{width:280px;max-width:52%;top:30px}
 .layer-scrubber{left:18%;right:18%;bottom:4px}
 .topic-menu>.topic-links{max-height:calc(100dvh - 104px - env(safe-area-inset-bottom))}
 .about-opening,.perspective-opening{grid-template-columns:1fr;gap:32px}
 .project-visual{height:560px}
}
