:root{color-scheme:light;--paper:#f4f0e5;--ink:#163b35;--red:#cb482e;--gold:#e6bc68}*{box-sizing:border-box}body{margin:0;background:#152e2a;color:var(--ink);font:16px/1.45 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;border:1px solid #829489;background:var(--paper);color:var(--ink);padding:12px 17px;border-radius:9px;cursor:pointer}button:disabled{opacity:.65;cursor:wait}.primary{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:650}a{color:inherit;text-underline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #d55031;outline-offset:4px}[hidden]{display:none!important}#world,a-scene{position:fixed;inset:0;width:100%;height:100%}.top{position:fixed;z-index:5;top:0;left:0;width:100%;padding:calc(env(safe-area-inset-top) + 14px) 18px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f4f0e5f2;font-size:12px;letter-spacing:.07em}.top a{text-decoration:none;font-size:14px;letter-spacing:0}.top button{padding:3px 10px;border-radius:50%;font-size:16px}.red{color:var(--red)}.status{position:fixed;z-index:5;top:calc(env(safe-area-inset-top) + 77px);left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:8px 16px;border-radius:30px;text-align:center;background:#f4f0e5ed;font-size:13px;box-shadow:0 3px 25px #0002}.gate{position:fixed;z-index:6;inset:0;margin:auto;width:min(100%,510px);max-height:100dvh;overflow:auto;padding:110px 32px 36px;background:var(--paper)}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.02;letter-spacing:-.035em}h1{font-size:clamp(40px,6vw,60px);margin:15px 0 23px}h2{font-size:32px;margin:8px 0 12px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px}.gate .primary{display:block;width:100%;margin:25px 0 17px}.gate a{display:block;font-size:14px}.fine{font-size:12px;opacity:.75}.fine a{display:inline}.bottom{position:fixed;z-index:4;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,540px);padding:20px 24px calc(env(safe-area-inset-bottom) + 22px);background:linear-gradient(125deg,#fffdf6f5,#ede7d8f5);border-radius:24px 24px 0 0;box-shadow:0 -12px 60px #0002}.bottom h2{font-size:28px}.bottom p:not(.eyebrow){font-size:14px;margin:8px 0 14px}.actions{display:flex;gap:8px}.actions .primary{flex:1}.aim{position:fixed;z-index:3;top:21%;left:calc(50% - 100px);width:200px;height:255px;pointer-events:none}.aim i{position:absolute;width:35px;height:35px;border:3px solid #fff8}.aim i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0}.aim i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.aim i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0}.aim i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}dialog{width:min(calc(100% - 28px),470px);max-height:85dvh;overflow:auto;border:1px solid #c1c6b3;border-radius:20px;background:var(--paper);color:var(--ink);padding:30px 25px;box-shadow:0 30px 120px #0006}dialog::backdrop{background:#06201ad4}.close{float:right;margin:-12px -8px 0 10px;font-size:24px;border:0;background:none;padding:2px 10px}dialog input:not([type=range]){width:100%;padding:14px;margin:12px 0;background:white;border:1px solid #889789;border-radius:8px;font:32px monospace;letter-spacing:.2em}dialog label{display:block}dialog .primary{width:100%;margin:8px 0}dialog summary{font-size:14px;cursor:pointer}#feedback{color:#af3423;min-height:1.5em;font-size:14px}.symbol-row{display:flex;gap:6px;flex-wrap:wrap}.symbol-row button{flex:1;min-width:80px;font-size:15px}.selection{min-height:36px;background:#e4dfd2;border-radius:8px;padding:8px;font-size:14px}.preview-badge{color:#874419}#angle-control{display:flex;align-items:center;gap:15px;font-size:12px;margin-top:12px}#angle{flex:1;accent-color:var(--red)}#help-dialog a{display:block;margin-top:18px}body.preview .bottom{padding-top:15px}body.preview .bottom h2{font-size:25px}@media(max-height:720px){.bottom{padding:14px 20px 16px}.bottom h2{font-size:23px}.bottom p:not(.eyebrow){font-size:12px;margin:6px 0 9px}.bottom .eyebrow{margin-bottom:6px}.gate{padding-top:75px}.gate h1{font-size:42px}.status{font-size:11px;padding:6px 12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.a-enter-vr,.a-enter-ar,.a-orientation-modal{display:none!important}dialog::backdrop{background:#06201a55}

.motion-toggle{font-size:12px;border:0;padding:8px 0 0;background:none;text-decoration:underline;text-underline-offset:3px}

.tilt-track{height:65px;position:relative;margin:16px 4px 0;background:linear-gradient(transparent 31px,#b7b39d 31px,#b7b39d 33px,transparent 33px)}.tilt-gate{position:absolute;top:11px;width:43px;height:43px;transform:translateX(-50%);border:2px solid #c8c3b1;border-radius:50%;font:12px/39px sans-serif;text-align:center;color:#586958}.tilt-gate.active{border-color:#c84c2d;background:#f4f0e5;box-shadow:0 0 0 4px #c84c2d16}.tilt-gate.done{border-color:#3c765f;background:#cbdcc7;color:#163b35}#tilt-light{position:absolute;left:50%;top:23px;transform:translateX(-50%);width:19px;height:19px;background:#e5a939;border:2px solid #fff9d1;box-shadow:0 0 15px #d29324;border-radius:50%}#tilt-hold{display:block;width:100%;height:4px;accent-color:#cc4930}#touch-control{display:block;font-size:12px;margin-top:12px}#tilt-slider{display:block;width:100%;accent-color:#cc4930;min-height:32px}#motion-panel h2{font-size:26px}#motion-panel>p:not(.eyebrow){font-size:13px}#motion-panel .fine{margin-bottom:0;font-size:11px}.sensor-active{padding-top:15px}

#clue-progress{font-size:12px!important;color:#365e4d;letter-spacing:.02em}#reveal-meter{display:block;width:100%;height:3px;margin:0 0 12px;accent-color:#cb482e}.utility{display:flex;justify-content:space-between;gap:12px}#view-controls{border-top:1px solid #b8bca8;margin-top:10px;padding-top:5px}#view-controls label{display:flex;align-items:center;gap:12px;font-size:12px}#view-controls input{flex:1;min-width:0;min-height:30px;accent-color:var(--red)}#badge-dialog{text-align:center}.badge-medal{margin:12px auto 24px;width:110px;height:110px;border-radius:50%;border:9px double #fcdf92;background:radial-gradient(circle at 35% 30%,#ffe9a2,#c48b30);box-shadow:7px 8px 0 #906126,0 15px 35px #77581933;color:#fff4c9;font-size:62px;line-height:88px;animation:badge-turn 5s ease-in-out infinite}.badge-cta{display:block;padding:14px;border-radius:9px;text-decoration:none;margin:20px 0}#badge-dialog>button{width:100%}@keyframes badge-turn{0%,100%{transform:perspective(400px) rotateY(-25deg) rotateZ(-5deg)}50%{transform:perspective(400px) rotateY(25deg) rotateZ(5deg)}}@media(prefers-reduced-motion:reduce){.badge-medal{animation:none}}@media(max-width:540px){.bottom{padding:15px 20px calc(env(safe-area-inset-bottom) + 15px)}.bottom h2{font-size:25px}.bottom p:not(.eyebrow){margin:6px 0 9px}.status{font-size:11px}.motion-toggle{font-size:11px}.actions button{padding:11px}}

/* XR Extras injects `* { box-sizing: inherit }` after page CSS. Scope the reset
   so runtime styles cannot turn padded controls into wider-than-screen boxes. */
body.office-ar,body.office-ar *,body.office-ar *::before,body.office-ar *::after{box-sizing:border-box}
html{width:100%;height:100%;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.office-ar{width:100%;height:100%;overflow:hidden}
.office-ar #world{overflow:hidden;max-width:100%}
.office-ar .top{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));gap:8px}
.office-ar .top>span{min-width:0;font-size:11px;letter-spacing:.04em;text-align:center}
.office-ar .top>button{flex:none;min-width:36px;min-height:36px}
.office-ar .top>a{flex:none}
.office-ar #bottom{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));width:auto;max-width:540px;margin-inline:auto;transform:none;padding:16px 18px;border-radius:20px;max-height:46dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin}
.office-ar #bottom .actions{flex-wrap:wrap}.office-ar #bottom .actions button{min-width:0;white-space:normal;flex:1 1 110px;min-height:44px}
.office-ar #bottom .eyebrow{font-size:9px}.office-ar #bottom h2{font-size:25px}
.office-ar #motion-panel>p:not(.eyebrow){font-size:13px;line-height:1.4}
.office-ar #motion-panel .tilt-track{height:57px;margin-top:7px}
.office-ar .status{max-width:calc(100% - 32px);font-size:11px;padding:8px 12px;line-height:1.35}
.office-ar #gate{max-height:100dvh;width:calc(100% - 24px);max-width:510px;border-radius:20px}
.office-ar dialog{max-height:calc(100dvh - 40px);overflow-wrap:anywhere}
@media(max-width:360px){.office-ar .top>span{font-size:9px}.office-ar #bottom{left:8px;right:8px;padding:13px 14px}.office-ar #bottom h2{font-size:23px}.office-ar .utility{flex-wrap:wrap}}
@media(max-height:500px){.office-ar #bottom{max-height:48dvh}.office-ar .status{top:64px}.office-ar #bottom h2{font-size:21px}}

/* A compact code lock keeps the camera view intact; the final screen explains
   the service and provides one clear client enquiry action. */
@font-face{font-family:Newsreader;src:url('../assets/fonts/newsreader-display.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url('../assets/fonts/archivo-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url('../assets/fonts/archivo-medium.woff2') format('woff2');font-weight:600 700;font-display:swap}
body.office-ar{font-family:Archivo,sans-serif}.office-ar h1,.office-ar h2{font-family:Newsreader,Georgia,serif}
.office-ar #code-dialog{padding:22px;max-width:390px;border-radius:16px;max-height:calc(100dvh - 24px)}
.office-ar #code-dialog h2{font-size:30px;margin-top:8px}.code-intro{font-size:13px;line-height:1.4;margin:10px 0 14px}.code-evidence{display:flex;justify-content:center;gap:10px}.code-evidence span{background:#e6ddc6;border:1px solid #c6b991;border-radius:6px;padding:8px 14px;font-size:21px;min-width:70px}.lock-order{font-size:12px;text-align:center;margin:14px 0}.lock-order strong{display:block;font-size:25px;margin-top:4px;font-weight:400;letter-spacing:.09em}.lock-order strong span{font-size:15px;color:#7b7c6e}.code-label{font-size:11px;text-align:center}.office-ar #vault-code{font-family:Archivo,sans-serif;font-size:26px;font-weight:600;text-align:center;letter-spacing:.35em;padding:8px;margin:7px 0 12px;height:49px}.code-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.code-keypad button{padding:8px;min-height:43px;background:#fffdf6;font-size:20px;border:1px solid #c7c9b8;border-radius:6px}.code-keypad button:active{background:#dce5d6;transform:translateY(1px)}.code-keypad #code-clear{font-size:12px}.office-ar #code-feedback{min-height:2.6em;font-size:12px;line-height:1.35;margin:10px 0 3px;color:#775127}.office-ar #code-dialog .primary{margin:0;min-height:45px}.code-hint{font-size:12px;margin-top:12px}.code-hint summary{font-size:12px}.code-hint p{margin-bottom:0}.office-ar #code-dialog .fine{font-size:10px;margin-bottom:0}
.office-ar #badge-dialog{max-width:470px;padding:28px 24px;border-radius:18px}.office-ar #badge-dialog h2{font-size:34px;margin:14px 0}.office-ar #badge-dialog .eyebrow{font-size:9px}.office-ar #badge-copy{font-size:12px;color:#526457}.office-ar .badge-medal{width:86px;height:86px;font-size:46px;line-height:66px;margin:4px auto 24px}.brand-finish{border-top:1px solid #c9cbbb;padding-top:18px;margin-top:21px;text-align:left}.brand-finish h3{font-family:Newsreader,Georgia,serif;font-weight:400;line-height:1.1;font-size:27px;letter-spacing:-.025em;margin:0 0 12px}.brand-finish p{font-size:13px;line-height:1.55;margin:0 0 13px}.brand-finish .brand-promise{font-weight:600;font-size:13px;color:#163b35}.finish-work{display:block;font-size:12px;margin:14px 0}.office-ar #badge-dialog>button{font-size:11px;margin-top:5px;padding:10px}.office-ar .badge-cta{font-size:14px;margin:20px 0 8px}
@media(max-height:720px){.office-ar #code-dialog{padding:18px}.office-ar #code-dialog h2{font-size:27px}.code-intro{margin:8px 0;font-size:12px}.code-evidence span{padding:5px 12px;font-size:18px}.lock-order{margin:8px 0}.code-keypad button{min-height:39px;padding:5px}.office-ar #code-dialog .fine{display:none}}

/* A finite celebration leaves the next step readable and respects reduced motion. */
#confetti{position:fixed;inset:0;z-index:8;overflow:hidden;pointer-events:none}#confetti i{position:absolute;left:var(--x);top:-22px;width:8px;height:15px;border-radius:2px;animation:celebrate-fall 2.9s var(--delay) ease-in forwards}
@keyframes celebrate-fall{0%{transform:translate3d(0,-25px,0) rotate(0);opacity:1}85%{opacity:1}100%{transform:translate3d(var(--drift),100dvh,0) rotate(var(--turn));opacity:0}}
.celebration{position:fixed;z-index:7;top:27%;left:50%;transform:translateX(-50%);width:min(270px,80vw);pointer-events:none;padding:20px 22px;text-align:center;border:1px solid #ffe6a9;border-radius:22px;background:#173b35ed;color:#fff6d8;box-shadow:0 18px 70px #071b1466}.celebration strong{display:block;font-family:Newsreader,Georgia,serif;font-size:26px;font-weight:400;line-height:1.1;margin:12px 0 6px}.celebration>span:last-child{font-size:11px;color:#e0e6d4}#celebration-symbol{display:block;margin:0 auto;width:65px;height:65px;border:5px double #fff0b5;border-radius:50%;background:linear-gradient(125deg,#fbe39a,#bc812d);box-shadow:4px 4px 0 #806126;color:#60491d;font-size:36px;line-height:55px;animation:badge-turn 2.4s ease-in-out infinite}.print-edition{font-size:12px;margin:16px 0}.print-edition select{display:block;margin:8px 0;width:100%;max-width:100%;min-height:44px;font:inherit;background:#fffdf6;color:var(--ink);border:1px solid #829489;border-radius:6px;padding:10px}.utility{flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){#confetti{display:none}#celebration-symbol{animation:none}}

/* Antique print meets a precise cinematic instrument panel. */
.office-ar{--signal:#a8ded1;--brass:#d9bb78;--console:#112f2b}
.office-ar .top{background:#102d29f5;color:#f7f0dc;border-bottom:1px solid #c7ad7159;box-shadow:0 3px 20px #061b1729}
.office-ar .top>span{letter-spacing:.10em}.office-ar .top>button{border-color:#a8cbb666;background:transparent;color:#f4eddb;border-radius:7px}
.office-ar .top .red{color:#ec875b}.office-ar .status{background:#102d29ed;color:#e2f0e5;border:1px solid #9ac2ad70;border-radius:5px;box-shadow:0 4px 18px #071d1738}
.office-ar .status::before{content:'';display:inline-block;width:5px;height:5px;background:var(--signal);margin-right:7px;border-radius:50%;box-shadow:0 0 6px #a8ded155}
.view-frame{display:none;position:fixed;z-index:2;pointer-events:none;inset:calc(env(safe-area-inset-top) + 130px) 18px calc(46dvh + 25px);border:1px solid #e2cb9130;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#e2cb9117 calc(25% - 1px),#e2cb9117 25%);min-height:90px;max-width:690px;margin-inline:auto}
.camera-ready .view-frame{display:block}.view-frame i{position:absolute;width:15px;height:15px;border:1px solid #dfc688aa}.view-frame i:nth-child(1){top:-1px;left:-1px;border-right:0;border-bottom:0}.view-frame i:nth-child(2){top:-1px;right:-1px;border-left:0;border-bottom:0}.view-frame i:nth-child(3){bottom:-1px;left:-1px;border-right:0;border-top:0}.view-frame i:nth-child(4){bottom:-1px;right:-1px;border-left:0;border-top:0}
.office-ar #bottom{color:#f3efdf;border:1px solid #d9bb7866;border-radius:12px;background-color:#112f2bf7;background-image:linear-gradient(#d9bb7808 1px,transparent 1px),linear-gradient(90deg,#d9bb7808 1px,transparent 1px);background-size:24px 24px;box-shadow:inset 0 0 0 4px #112f2b,inset 0 0 0 5px #d9bb7822,0 -8px 48px #081e1940;padding:17px 20px}
.office-ar #bottom .eyebrow{color:#a8ded1;letter-spacing:.14em;font-size:9px}.office-ar #bottom h2{color:#fff4d7;font-size:28px;margin-top:10px;letter-spacing:-.025em}.office-ar #bottom p:not(.eyebrow){color:#e0e6d9;line-height:1.5}
.quest-steps{display:flex;gap:8px;margin:1px 0 15px}.quest-steps span{flex:1;border-top:2px solid #81988b44;color:#9ea99a;padding-top:5px;font:9px/1 monospace;letter-spacing:.05em}.quest-steps span.current{border-color:#e6c580;color:#ffe1a0}.quest-steps span.complete{border-color:#9ddac5;color:#b8e6d5}
.office-ar #bottom .primary{background:#ead19a;color:#193c32;border-color:#f1dca9;border-radius:5px;font-weight:600;box-shadow:inset 0 0 0 2px #102d2910}.office-ar #bottom button:not(.primary){color:#e5eadb;border-color:#8fb2a07a;background:transparent;border-radius:5px}.office-ar #bottom button:disabled{opacity:.58;cursor:default}
.office-ar #clue-progress{color:#bbe0cf!important}.office-ar #reveal-meter,.office-ar #tilt-hold{accent-color:#b1e3d2}.office-ar #view-controls{border-color:#819e8f50}.office-ar #view-controls input,.office-ar #tilt-slider{accent-color:#ead19a}.office-ar #bottom .fine{opacity:1;color:#b1c6b6!important}.office-ar #bottom .utility{gap:6px 16px}
.office-ar .tilt-track{background:linear-gradient(transparent 31px,#90aa8a66 31px,#90aa8a66 33px,transparent 33px)}.office-ar .tilt-gate{border-color:#839d8b;color:#d3ddc9;font-style:normal}.office-ar .tilt-gate.active{background:#28483a;border-color:#f1d599;color:#ffe7b3;box-shadow:0 0 0 4px #f1d59912}.office-ar .tilt-gate.done{background:#abd8bf;border-color:#cbefd9;color:#12382d}
.office-ar #gate,.office-ar dialog{border:1px solid #b4ad92;border-radius:10px;background-color:#f4f0e5;background-image:linear-gradient(#6d806810 1px,transparent 1px),linear-gradient(90deg,#6d806810 1px,transparent 1px);background-size:32px 32px;box-shadow:inset 0 0 0 5px #f4f0e5,inset 0 0 0 6px #a6ac9055,0 25px 80px #061b1766}
.office-ar #gate .eyebrow{color:#516d56}.office-ar #code-dialog,.office-ar #badge-dialog{border-radius:10px}.office-ar .code-keypad button{border-radius:3px;border-color:#a9b19a}.office-ar .code-keypad button:active{background:#183f35;color:#fff1d0}.office-ar .celebration{border-radius:8px;box-shadow:inset 0 0 0 4px #173b35,inset 0 0 0 5px #d9bb7833,0 18px 70px #071b1466}
@media(max-width:360px){.office-ar #bottom{padding:15px 16px}.office-ar #bottom h2{font-size:24px}.quest-steps{margin-bottom:11px}.office-ar .top>span{letter-spacing:.04em}}
@media(max-height:600px){.quest-steps{margin-bottom:8px}.quest-steps span{padding-top:3px}.view-frame{display:none!important}.office-ar #bottom h2{font-size:23px}}
