:root { --ink:#203852; --accent:#207c86; --action:#3a6392; --line:#d8e3ea; --wash:#f4f8fb; --muted:#506475; color:var(--ink); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); font:16px/1.55 "Segoe UI",Arial,sans-serif; }
.wrap { width:min(1180px,90%); margin-inline:auto; }
a { color:var(--action); }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid #278590; outline-offset:3px; }
header { border-bottom:1px solid var(--line); }
.mast,footer.wrap,nav,.brand,.actions,figcaption { display:flex; align-items:center; }
.mast,footer.wrap { justify-content:space-between; }
.mast { min-height:76px; }
nav,.actions { gap:24px; }
.brand { color:var(--ink); font-size:24px; font-weight:730; letter-spacing:-.055em; gap:7px; }
.brand img { width:45px; height:45px; }
nav a { font-size:14px; font-weight:600; }
.primary { background:var(--action); color:white; border-radius:8px; padding:10px 16px; }
.hero,.future,.auth { display:grid; grid-template-columns:1fr 1.06fr; gap:5%; align-items:center; }
.hero { padding-block:clamp(60px,7vw,108px); }
.eyebrow,figcaption,.case-context span { color:var(--accent); text-transform:uppercase; letter-spacing:.13em; font-size:11px; font-weight:720; }
.eyebrow i { display:inline-block; width:8px; height:8px; background:#e97860; border-radius:50%; margin-right:6px; }
h1,h2,h3 { color:var(--ink); line-height:1.06; letter-spacing:-.052em; font-weight:670; margin:0; }
h1 { font-size:clamp(48px,5.8vw,84px); margin:18px 0; overflow-wrap:anywhere; }
h2 { font-size:clamp(32px,3.6vw,53px); margin:14px 0; }
h3 { font-size:22px; }
em { color:var(--accent); font-style:normal; }
.lead,.intro,.auth-intro>p:last-child { font-size:18px; line-height:1.6; color:var(--muted); max-width:550px; }
.actions { margin-top:26px; flex-wrap:wrap; }
.actions a:not(.cta),.switch a,.legal a { color:var(--action); text-decoration:underline; text-underline-offset:3px; }
.mud-button.cta { border-radius:8px; text-transform:none; letter-spacing:normal; padding:12px 19px; }
figure { margin:0; }
.hero-image,.future img { display:block; width:100%; height:auto; }
figcaption { justify-content:center; flex-wrap:wrap; gap:8px; }
figcaption span { color:#a4b9b6; }
.story { background:var(--wash); padding:56px 0; border-block:1px solid var(--line); }
.case { display:grid; grid-template-columns:.8fr 1.2fr; margin-top:24px; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:white; }
.case-context { background:#304d6e; padding:clamp(22px,4vw,48px); color:#f3faf6; display:grid; align-content:center; gap:10px; }
.case-context span { color:#b6d8d1; }
.case-context strong { font-size:clamp(27px,3vw,42px); line-height:1.13; }
.sequence { list-style:none; margin:0; padding:10px clamp(16px,3vw,32px); }
.sequence li { display:flex; gap:18px; padding:17px 0; border-bottom:1px solid var(--line); }
.sequence li:last-child { border-bottom:0; }
.sequence b { color:var(--accent); font-size:13px; }
.sequence p,.account p,.switch,.legal p { color:var(--muted); margin-top:6px; }
.future { padding-block:58px; }
footer.wrap { border-top:1px solid var(--line); padding:22px 0; gap:12px; }
footer nav { flex-wrap:wrap; }
footer .brand { font-size:19px; }
.top { width:44px; height:44px; border-radius:50%; background:var(--wash); display:grid; place-items:center; }
.auth,.workspace,.legal { padding-block:clamp(48px,7vw,90px); min-height:60vh; }
.auth { grid-template-columns:1fr minmax(0,450px); }
.mud-paper.panel { border:1px solid var(--line); border-radius:16px; padding:clamp(22px,3vw,36px); }
.panel form { display:grid; gap:14px; }
form label { display:grid; gap:6px; font-weight:600; }
form input { min-width:0; width:100%; border:1px solid #aabdb9; border-radius:8px; padding:12px; font:inherit; }
.switch { margin-top:18px; }
.error { color:#8c301e; }
.workspace,.legal { max-width:820px; }
.account { display:flex; gap:18px; align-items:center; margin:24px 0; }
.account h2,.legal h2 { font-size:24px; }
.legal h2 { margin-top:30px; }
address { font-style:normal; margin-block:14px; }
.notice { padding-block:45px; }
@media(max-width:720px) {
  .hero,.auth,.case,.future { grid-template-columns:1fr; gap:24px; }
  .case { gap:0; }
  .mast { min-height:64px; }
  .hero,.story,.future,.auth,.workspace { padding-block:36px; }
  nav { gap:14px; }
  .tour { display:none; }
  .brand { font-size:21px; }
  .brand img { width:36px; height:36px; }
  .future img { max-width:430px; }
  footer.wrap { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.object-hero { grid-template-columns: .9fr 1.1fr; gap:5%; padding-block: clamp(42px,5vw,76px); }
.explorer { min-width:0; overflow:hidden; border:1px solid #cedfe6; background:#f7fafb; border-radius:18px; }
.viewer-label,.viewer-footer,.camera-controls,.capture-grid,.dossier,.milestones { display:flex; }
.viewer-label,.viewer-footer { align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; }
.viewer-label span,.viewer-footer small,.scope-card small,.capture-grid small,.milestones span {
  display:block; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent);
}
.viewer-label strong { font-size:14px; }
.viewer-stage { position:relative; background:radial-gradient(ellipse at 50% 60%,#fffdf6,#edf3f8); }
.scene-target { width:100%; display:block; background:none; border:0; cursor:pointer; color:inherit; }
.scene-target svg { width:100%; height:auto; display:block; }
.camera-controls { position:absolute; right:10px; bottom:8px; gap:4px; }
.camera-controls button,.back-model { border:1px solid var(--line); border-radius:9px; background:white; cursor:pointer; color:var(--action); }
.camera-controls button { width:44px; height:44px; font-size:22px; }
.viewer-footer { background:#fff; border-top:1px solid var(--line); }
.viewer-footer strong { display:block; font-size:17px; }
.viewer-footer button,.viewer-footer a { padding:10px 13px; background:var(--action); color:white; border:0; border-radius:8px; font-family:inherit; font-size:14px; font-weight:600; line-height:1.4; cursor:pointer; text-decoration:none; }
.back-model { display:block; margin:0 0 10px 14px; padding:7px 10px; }
.capture-grid,.milestones { gap:22px; margin-top:28px; }
.capture-grid article,.milestones li { flex:1; border-top:2px solid #a9ced1; padding:18px 0 0; }
.capture-grid h3,.milestones h3 { margin:10px 0; }
.capture-grid p,.milestones p { color:var(--muted); }
.dossier { align-items:center; justify-content:space-between; gap:7%; padding-block:64px; }
.scope-card { background:#315777; color:white; border-radius:15px; padding:clamp(20px,3vw,38px); flex:0 0 43%; }
.scope-card h3 { color:white; margin:12px 0; font-size:30px; }
.scope-card small { color:#a7e1e1; }
.scope-card dl { margin:0; display:grid; grid-template-columns:auto 1fr; gap:10px 18px; font-size:15px; }
.scope-card dt { color:#c3e3e5; }
.scope-card dd { margin:0; }
.work-history { background:#f3f8fb; padding:56px 0; }
.milestones { list-style:none; padding:0; }
@media(max-width:720px) {
  .object-hero { grid-template-columns:minmax(0,1fr); }
  .capture-grid,.milestones,.dossier { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
  .viewer-label,.viewer-footer { padding:12px; }
  .viewer-footer { flex-wrap:wrap; }
  .dossier,.work-history { padding-block:38px; }
}


/* The initial routing focus is on a heading, not an interactive control. */
h1[tabindex="-1"]:focus { outline:none; }
.object-hero h1 { font-size:clamp(48px,5.15vw,74px); }
.explore-tip { color:var(--muted); background:#f6f9fc; margin:0; padding:8px 18px; font-size:13px; }
hit-house{display:block} .model-stage{position:relative;aspect-ratio:1.5;background:radial-gradient(ellipse at center,#fffdf8,#edf4f8);overflow:hidden} .model-stage canvas,.model-stage img{width:100%;height:100%;display:block}.model-stage img{object-fit:contain}.model-stage canvas{touch-action:none;cursor:grab}.model-stage canvas:active{cursor:grabbing}.explorer [hidden]{display:none!important}.model-tools{background:#fff}.model-nav,.zoom,.layers,.model-nav label{display:flex;align-items:center;gap:.5rem}.model-nav{padding:10px 14px;justify-content:space-between;flex-wrap:wrap}.model-nav label,.model-tools summary{font-size:.87rem;font-weight:650}.model-nav select,.zoom button{background:white;border:1px solid var(--line);color:var(--ink);font:inherit;border-radius:8px;min-height:44px}.model-nav select{padding:0 6px}.zoom{gap:3px}.zoom button{min-width:38px;font-size:1.25rem;cursor:pointer}.model-tools details{border-top:1px solid var(--line);padding:9px 15px}.model-tools summary{cursor:pointer;padding:4px 0}.layers{flex-wrap:wrap;gap:6px 15px;padding-top:7px}.layers label{font-size:.86rem;cursor:pointer;padding:5px 0}.layers input{accent-color:var(--action)}.viewer-footer{flex-wrap:wrap}.store-intro{margin:1.5rem 0;display:flex;align-items:center;gap:clamp(1rem,4vw,3rem);background:white;border:1px solid var(--line);border-radius:16px;padding:12px 5%}.store-intro img{width:min(46%,340px);height:auto}.store-intro p{max-width:31ch;color:var(--ink);font-size:clamp(16px,2.1vw,24px);line-height:1.35}.store-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(15px,3vw,40px);padding-bottom:52px}.store-gallery img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.store-gallery figcaption{display:block;text-transform:none;letter-spacing:normal;font-size:1.12rem;color:var(--ink);margin:10px 0 4px}.store-gallery p{color:var(--muted)}@media(max-width:720px){.store-gallery{grid-template-columns:1fr}.store-gallery figure{max-width:430px}.store-intro{padding:12px;gap:10px}}@media(max-width:420px){.model-nav{padding:8px;gap:4px}.model-nav label{gap:4px}}


.hero-motif{display:block;width:min(78%,324px);height:auto;margin:-8px 0 18px}.sample-order{display:block;max-width:410px;border-top:1px solid var(--line);padding:15px 0 0;margin-top:25px;color:var(--ink);text-decoration:none}.sample-order span,.sample-order small{display:block;font-size:13px;color:var(--muted)}.sample-order strong{display:block;margin:4px 0;font-size:18px}.sample-order b{color:var(--accent)}.sample-order:hover strong{text-decoration:underline}.mini{position:absolute;right:10px;top:10px;z-index:1;width:96px;padding:4px 7px;background:#fffffff2;color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 10px #20385217}.mini summary{cursor:pointer;font-size:12px;font-weight:650;line-height:26px}.mini svg{display:block;width:100%;height:84px}.mini [data-room]{fill:#e4edf2}.mini [data-room].current{fill:#a6d6db}.zoom [data-zoom]{min-width:42px;font:600 .76rem/1 system-ui;text-align:center;color:var(--muted)}@media(max-width:720px){.hero-motif{width:185px;margin:0 0 4px}.sample-order{margin-top:16px}.mini{width:79px;right:6px;top:6px}.mini svg{height:64px}}
.site-shell { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; }
.site-shell > main { flex:1 0 auto; }
.site-shell > footer { margin-top:auto; }
.cookie-open { padding:0; border:0; background:none; color:var(--action); font-family:inherit; font-size:14px; line-height:1.5; font-weight:600; cursor:pointer; }

.cookie-popup {
    position:fixed; inset:0; margin:auto; box-sizing:border-box;
    width:min(420px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto;
    padding:clamp(22px,4vw,32px); border:1px solid var(--line); border-radius:18px;
    background:white; color:var(--ink); box-shadow:0 16px 56px #20385230;
}
.cookie-popup::backdrop { background:rgb(24 46 66 / 43%); }
.cookie-popup img { display:block; margin-bottom:12px; }
.cookie-popup h2 { margin:0 0 10px; font-size:26px; }
.cookie-popup p { margin:0; color:var(--muted); }
.cookie-actions { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-top:24px; }
.cookie-actions a { text-decoration:underline; }
.cookie-actions button { min-height:44px; padding:8px 16px; border:0; border-radius:8px; background:var(--action); color:white; font:inherit; cursor:pointer; }
