@font-face{font-family:Montserrat;src:url('./assets/montserrat-light.ttf');font-weight:300;font-display:swap}@font-face{font-family:Montserrat;src:url('./assets/montserrat.ttf');font-weight:400 600;font-display:swap}@font-face{font-family:'IBM Plex Mono';src:url('./assets/mono.ttf');font-display:swap}
:root{font-family:Montserrat,Arial,sans-serif;color:#f3f3f3;background:#0a0a0a;font-synthesis:none}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;touch-action:none;user-select:none}button,a,input,select{touch-action:manipulation}button{font:500 10px Montserrat,Arial,sans-serif;letter-spacing:1.7px;color:inherit;background:#1118;border:1px solid #ffffff38;padding:13px 17px;cursor:pointer;transition:background .2s,border-color .2s}button:hover{background:#ffffff20;border-color:#ffffff90}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid white;outline-offset:5px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}#scene{position:absolute;inset:0;width:100%;height:100%;touch-action:none}header{position:absolute;left:40px;right:40px;top:32px;display:flex;align-items:flex-start;justify-content:space-between;z-index:4;pointer-events:none}.wordmark{font-size:24px;font-weight:500;letter-spacing:7px;color:#fff;text-decoration:none;pointer-events:auto;text-shadow:0 1px 16px #0005}.wordmark span{display:block;font-size:8px;letter-spacing:2.1px;margin-top:9px}.top-actions{display:flex;gap:10px;pointer-events:auto}.top-actions button{border:0;background:#1115;font-size:9px;padding:12px}.mono,.eyebrow,.location,small,footer,.mode,#hint,.note,#notice{font-family:'IBM Plex Mono',monospace}.eyebrow{font-size:10px;letter-spacing:2px;color:#b6b7b3}#welcome{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:100px 7vw 80px;pointer-events:none;background:linear-gradient(90deg,#080a0cef 0%,#080a0cb5 30%,#080a0c18 63%,transparent 100%)}h1{font-size:clamp(38px,4.3vw,70px);line-height:1.18;font-weight:300;letter-spacing:3px;margin:28px 0 22px}#welcome p{font-size:13px;line-height:1.9;color:#c5c7c6}.start-actions{margin-top:28px;display:flex;align-items:flex-start;flex-direction:column;gap:16px;pointer-events:auto;width:max-content}.primary{background:#f3f3f3;color:#131514;border-color:#f3f3f3;padding:19px 23px;min-width:205px;text-align:left}.primary:hover{background:#d7d9d4;color:#111}.primary span{float:right;font-size:16px;margin-left:40px}.text-button{border:0;padding:10px 0;background:none!important;font-size:9px}.location{font-size:9px;letter-spacing:1px;margin-top:38px;color:#d0d1cc}.dot{display:inline-block;width:5px;height:5px;background:currentColor;border-radius:50%;margin-right:10px}.location .dot{color:#d5ded0}footer{position:absolute;left:40px;right:40px;bottom:25px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#ddd}#loading{position:absolute;inset:0;background:#0a0a0a;z-index:30;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px}#loading p{font-size:9px;letter-spacing:2px;margin-top:30px}#loadtext{font-size:10px;color:#888}.load-track{width:240px;height:1px;background:#333}.load-track i{display:block;height:1px;width:0;background:#eee;transition:width .2s}#intro{position:absolute;bottom:60px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between}#intro p{font-size:11px;letter-spacing:2px}#hud{pointer-events:none;position:absolute;inset:0;background:linear-gradient(#0004,transparent 22%,transparent 65%,#0006)}#hud button,#hud input{pointer-events:auto}.mode{position:absolute;top:112px;left:40px;font-size:10px;letter-spacing:1.4px}.mode #tourLabel{display:block;margin-top:12px;font-size:9px;letter-spacing:.5px;color:#ddd}#reticle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fffc;font:300 22px Arial;text-shadow:0 0 3px black}#hint{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);font-size:9px;white-space:nowrap;color:white;text-shadow:0 1px 8px black}.telemetry{position:absolute;bottom:31px;left:40px;display:flex;gap:30px}.telemetry small{display:block;font-size:8px;letter-spacing:1px;margin-bottom:8px;color:#ccc}.telemetry span{font:400 20px 'IBM Plex Mono',monospace}.telemetry em{font:9px 'IBM Plex Mono',monospace;margin-left:6px;color:#bbb}.toolbar{position:absolute;right:40px;bottom:30px;display:flex;gap:7px}.toolbar button{font-size:8px;padding:13px}#map{position:absolute;right:40px;top:110px;width:100px;height:140px;background:#10131199;border:1px solid #fff3}#inspectPrompt{position:absolute;left:50%;top:56%;transform:translateX(-50%);font-size:9px;background:#121513cb}#inspection{position:absolute;right:0;top:0;bottom:0;width:390px;background:#101211ed;backdrop-filter:blur(20px);padding:100px 32px 30px;z-index:10;overflow:auto}h2{font-size:28px;line-height:1.4;font-weight:300;letter-spacing:1px;margin:18px 0}#materialFamily{font-size:11px;color:#aaa;text-transform:uppercase;letter-spacing:1px}#inspection p,dialog p{font-size:12px;line-height:1.8;color:#aaa}#materialImage{width:100%;height:auto;margin:20px 0}#inspection .note{font-size:9px;line-height:1.8;margin-bottom:28px}.close{position:absolute;right:20px;top:20px;border:0;background:none;font-size:25px;padding:8px}.note{font-size:10px!important;line-height:1.7;color:#999}dialog{background:#111513;color:#eee;border:1px solid #ffffff30;max-width:550px;width:calc(100% - 32px);padding:45px;max-height:85vh;overflow:auto;touch-action:pan-y}dialog::backdrop{background:#0008;backdrop-filter:blur(7px)}dl{display:grid;grid-template-columns:130px 1fr;font-size:10px;gap:18px 10px;margin:28px 0}dt{font-family:'IBM Plex Mono',monospace;color:white}dd{margin:0;color:#aaa;line-height:1.6}dialog label{display:block;margin:24px 0;font-size:12px}dialog label span{float:right;color:#aaa}input[type=range]{display:block;width:100%;margin-top:20px;accent-color:#ccc}select{display:block;width:100%;margin-top:15px;background:#222;color:white;padding:12px;border:1px solid #555}label.check{display:flex;gap:12px;align-items:center}#notice{position:absolute;bottom:145px;left:50%;transform:translateX(-50%);background:#111d;padding:12px 20px;font-size:10px;pointer-events:none;opacity:0;transition:opacity .3s;z-index:20}.touch-controls{display:none}.stick{position:relative;width:100px;height:100px;border:1px solid #fff5;border-radius:50%;background:#1114;touch-action:none;pointer-events:auto}.stick i{position:absolute;width:34px;height:34px;border:1px solid #fffa;background:#eee2;border-radius:50%;left:32px;top:32px;pointer-events:none}.stick small{position:absolute;bottom:-20px;left:0;width:100%;text-align:center;font-size:8px;letter-spacing:2px}.vertical{display:flex;flex-direction:column;gap:8px}.vertical button{font-size:20px;padding:5px 15px}
@media(pointer:coarse){.touch-controls{display:flex;position:absolute;bottom:110px;left:30px;right:30px;align-items:center;justify-content:space-between}#hint{display:none}.telemetry{bottom:70px}.toolbar{bottom:15px}.top-actions #fullscreen span{display:none}}
@media(max-width:700px){header{left:22px;right:22px;top:24px}.wordmark{font-size:20px;letter-spacing:5px}.wordmark span{font-size:6px}#welcome{padding-left:26px;background:linear-gradient(90deg,#080a0ce6,#080a0c36)}h1{font-size:42px;margin:25px 0 16px}.start-actions{margin-top:18px}.location{margin-top:25px}footer{left:22px;right:22px;font-size:7px}footer span:last-child{display:none}.mode{left:22px;top:100px}#map{right:22px;top:95px;width:65px;height:91px}.telemetry{left:22px;gap:22px}.telemetry span{font-size:16px}.toolbar{left:22px;right:22px;justify-content:space-between}.toolbar button{font-size:7px;padding:10px 8px}.top-actions{gap:2px}.top-actions button{font-size:7px;padding:9px}#inspection{width:100%;padding:70px 28px 25px}#materialImage{max-height:30vh;object-fit:cover}#intro{left:22px;right:22px}.stick{width:85px;height:85px}.stick i{left:25px;top:25px}dialog{padding:35px 25px}dl{grid-template-columns:100px 1fr}.telemetry small{font-size:7px}#hint{white-space:normal;text-align:center;width:90%}}
@media(max-height:550px){#welcome{padding-top:70px;padding-bottom:40px}h1{font-size:32px;line-height:1.04;margin:12px 0}#welcome p{font-size:10px;margin:5px 0}.location{margin-top:12px}.start-actions{flex-direction:row;align-items:center;margin-top:12px}.primary{padding:14px 18px}.eyebrow{font-size:8px}.touch-controls{bottom:75px;left:25px;right:25px}.telemetry{left:160px;bottom:22px}.toolbar{left:auto;right:25px;bottom:20px}.mode{top:95px}#map{display:none}}
@media(pointer:coarse) and (min-height:551px){.touch-controls{bottom:140px}#notice{bottom:auto;top:210px;width:calc(100% - 70px);max-width:350px;text-align:center}}

#loading{transition:opacity .45s ease}#loading.is-ready{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){#loading{transition:none}}

/* Material discovery shares the existing quiet architectural typography. */
.product-link{display:flex;text-decoration:none;justify-content:space-between;margin:20px 0 12px;align-items:center}#inspection{overflow-y:auto}#inspection img{object-fit:contain;max-height:34vh;width:100%;background:#171918}#inspection #resume{margin-top:12px}#productNote:empty{display:none}#inspectPrompt{max-width:min(85vw,430px);white-space:normal;text-align:center}#inspection .note{line-height:1.6}#viewProduct:focus-visible{outline:2px solid white;outline-offset:5px}

#viewProduct[aria-disabled="true"]{opacity:.4;cursor:default}#textureDetail{margin:8px 0;text-align:left}#textureDialog{width:min(1100px,94vw);max-width:94vw}#textureDialog h2{font-size:24px;margin:15px 0}#detailZoom{margin:0 0 16px}.detail-viewport{overflow:auto;max-height:65vh;overscroll-behavior:contain}#detailImage{display:block;width:100%;height:60vh;object-fit:contain}#detailImage.magnified{width:220%;max-width:none;height:auto}#inspection:not([hidden]){animation:panel-in .25s ease-out}@keyframes panel-in{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}@media(prefers-reduced-motion:reduce){#inspection:not([hidden]){animation:none}}
/* iOS Safari: Safari needs the -webkit- prefixes; the flight interface never shows
   selection handles, the loupe, long-press callouts or tap highlights. */
html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
input,select,textarea{-webkit-user-select:auto;user-select:auto}
#scene,.touch-controls,.stick,.stick *,.vertical,.vertical button{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
