:root{--surface-page: var(--brand-paper);--surface-raised: var(--brand-paper-raised);--surface-sunken: var(--brand-paper-sunken);--surface-inverse: var(--brand-ink);--surface-stage: #16151a;--text-heading: var(--brand-ink);--text-body: var(--brand-ink-soft);--text-muted: var(--brand-muted);--text-inverse: var(--brand-paper);--text-on-primary: var(--brand-on-primary);--text-link: var(--brand-link);--border: var(--brand-line);--border-strong: var(--brand-ink);--btn-primary-bg: var(--brand-primary);--btn-primary-fg: var(--brand-on-primary);--btn-primary-bg-hover: var(--brand-primary-hover);--btn-secondary-bg: transparent;--btn-secondary-fg: var(--brand-ink);--btn-secondary-border: var(--brand-ink);--accent: var(--brand-accent);--text-on-accent: var(--brand-on-accent);--text-accent: var(--brand-accent-text);--selected-bg: var(--brand-selected);--selected-fg: var(--brand-on-selected);--selected-ring: var(--brand-primary);--focus-ring: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 40%, transparent);--surface-bar: var(--brand-bar);--text-on-bar: var(--brand-on-bar);--bar-rule: var(--brand-bar-rule-width) solid var(--brand-bar-rule);--surface-hero: var(--brand-hero);--text-on-hero: var(--brand-on-hero);--text-on-hero-muted: var(--brand-on-hero-muted);--pattern: var(--brand-pattern, none);--font-display: var(--brand-font-display);--font-body: var(--brand-font-body);--font-figures: var(--brand-font-body);--display-weight: var(--brand-display-weight);--display-case: var(--brand-display-case);--display-tracking: var(--brand-display-tracking);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--leading-tight: 1.15;--leading-body: 1.5;--radius-button: var(--brand-radius-button);--radius-card: var(--brand-radius-card);--radius-sheet: 16px;--button-case: var(--brand-button-case);--button-tracking: var(--brand-button-tracking);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--tap-min: 48px;--gutter: 16px;--speed-fast: .12s;--speed: .2s;--ease: cubic-bezier(.2, 0, 0, 1);--wall-default: #eceae6;--frame-shadow: 0 18px 32px -12px rgba(20, 18, 16, .45), 0 4px 8px rgba(20, 18, 16, .18);--measure-line: #d23c3c;--measure-text: #ffffff;--scale-ref: #2b6cb0}@media(prefers-reduced-motion:reduce){:root{--speed-fast: 0ms;--speed: 0ms}}body{background:var(--surface-page);color:var(--text-body);font:var(--text-base)/var(--leading-body) var(--font-body)}h1,h2,h3{color:var(--text-heading);font-family:var(--font-display);font-weight:var(--display-weight);text-transform:var(--display-case);letter-spacing:var(--display-tracking);line-height:var(--leading-tight)}.btn{min-height:var(--tap-min);padding:0 var(--space-6);border-radius:var(--radius-button);font:600 var(--text-sm)/1 var(--font-body);text-transform:var(--button-case);letter-spacing:var(--button-tracking);transition:background var(--speed-fast) var(--ease)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border:0}.btn-primary:hover{background:var(--btn-primary-bg-hover)}.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-fg);border:1px solid var(--btn-secondary-border)}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.size-label{font-family:var(--font-figures);font-variant-numeric:tabular-nums}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--surface-sunken)}button{font:inherit}#app{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--surface-page)}.view{min-height:100dvh;display:flex;flex-direction:column}h1{font-size:var(--text-xl);margin:0;text-wrap:balance}h2{margin:0}:where(.chip,.swatch,.tile,.item-link,.icon-btn,.btn,.seg a,.wordmark):focus-visible{outline:2px solid var(--text-heading);outline-offset:2px}.app-bar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:minmax(44px,auto) 1fr minmax(44px,auto);align-items:center;gap:var(--space-2);min-height:56px;padding:calc(env(safe-area-inset-top,0px) + 6px) var(--space-2) 6px var(--space-4);background:var(--surface-bar);color:var(--text-on-bar);border-bottom:var(--bar-rule)}.app-bar :focus-visible{outline-color:var(--text-on-bar)}.bar-left,.bar-right{display:flex;align-items:center}.bar-right{justify-content:flex-end}.bar-title{text-align:center;font-weight:600;color:var(--text-on-bar);font-size:var(--text-base);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-sub{font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--text-on-bar) 65%,var(--surface-bar))}.wordmark{display:inline-flex;align-items:center;color:var(--text-on-bar);font-size:1.15rem;text-decoration:none}.wordmark .logo{display:block;height:34px;width:auto}.logo-text{font-family:var(--font-display);font-weight:var(--wordmark-weight);text-transform:var(--wordmark-case);letter-spacing:var(--wordmark-tracking);white-space:nowrap}.icon-btn{position:relative;width:44px;height:44px;display:inline-grid;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--text-heading);cursor:pointer;text-decoration:none}.icon-btn svg{width:22px;height:22px}.app-bar .icon-btn{color:var(--text-on-bar)}.badge{position:absolute;top:5px;right:3px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--btn-primary-bg);color:var(--btn-primary-fg);font:600 11px/18px var(--font-body);text-align:center}.screen{flex:1;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5) var(--gutter) var(--space-8)}.intro{display:grid;gap:var(--space-2)}.lede{margin:0;color:var(--text-body)}.footnote{margin:0;text-align:center;font-size:var(--text-xs);color:var(--text-muted)}.dev{display:grid;gap:var(--space-1);padding-top:var(--space-3);border-top:1px dashed var(--border);font-size:var(--text-xs);color:var(--text-muted)}.dev select{font:inherit;font-size:var(--text-sm);padding:var(--space-2)}.seg{display:grid;grid-template-columns:repeat(3,1fr);padding:4px;border-radius:var(--radius-button);background:var(--surface-sunken)}.seg a{padding:10px 0;border-radius:var(--radius-button);text-align:center;text-decoration:none;font-size:var(--text-sm);font-weight:500;color:var(--text-muted)}.seg a[aria-current]{background:var(--surface-raised);color:var(--text-heading);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent),0 1px 2px #0000001f}.tab-note{margin:calc(-1 * var(--space-2)) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.tiles{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.tile{display:grid;grid-template-columns:112px 1fr;gap:var(--space-4);align-items:center;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-raised);color:inherit;text-decoration:none}.mini{display:block;width:112px;height:78px;background:#ebe8e2;border-radius:calc(var(--radius-card) / 2)}.tile-text{display:grid;gap:2px;min-width:0}.tile-text b{font-size:var(--text-base);font-weight:600;color:var(--text-heading)}.tile-text small{font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.see{gap:var(--space-4);padding-bottom:112px}.stage{margin:calc(-1 * var(--space-5)) calc(-1 * var(--gutter)) 0}#wall{display:block;width:100%;aspect-ratio:4 / 3.4;background:#ebe8e2}.rooms{display:flex;gap:var(--space-2);overflow-x:auto;margin:calc(-1 * var(--space-2)) calc(-1 * var(--gutter)) 0;padding:2px var(--gutter);scrollbar-width:none}.rooms::-webkit-scrollbar{display:none}.room{flex:none;display:grid;gap:4px;justify-items:center;padding:0;border:0;background:none;color:var(--text-muted);font:500 var(--text-xs)/1 var(--font-body);cursor:pointer}.room img,.room i{display:block;width:60px;height:40px;object-fit:cover;border-radius:6px;background:#ebe8e2;box-shadow:inset 0 0 0 1px #00000014}.room[aria-pressed=true]{color:var(--text-heading)}.room[aria-pressed=true] img,.room[aria-pressed=true] i{box-shadow:0 0 0 2px var(--surface-page),0 0 0 4px var(--text-heading)}.room:focus-visible{outline:2px solid var(--text-heading);outline-offset:2px;border-radius:6px}.readout{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--text-sm);color:var(--text-muted)}.readout b{font-size:var(--text-md);color:var(--text-heading);font-variant-numeric:tabular-nums}.each{margin:calc(-1 * var(--space-3)) 0 0;font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.price{display:grid;gap:2px;padding:var(--space-3) var(--space-4);border-left:3px solid var(--accent);border-radius:var(--radius-card);background:var(--surface-sunken);font-size:var(--text-xs);color:var(--text-muted)}.price[hidden]{display:none}.price b{font-size:var(--text-md);color:var(--text-heading);font-weight:600}.item-price{color:var(--text-heading)!important;font-weight:600}#controls{display:grid;gap:var(--space-5)}.group{display:grid;gap:var(--space-2)}.lbl:before{content:"";flex:none;align-self:center;width:12px;height:2px;background:var(--accent)}.lbl{display:flex;gap:var(--space-2);align-items:baseline;font:600 var(--text-xs)/1.2 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.lbl-value{font-size:var(--text-sm);letter-spacing:0;text-transform:none;color:var(--text-heading)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scrollbar-width:none}.chips.scroll::-webkit-scrollbar{display:none}.chip{flex:none;min-height:40px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-button);background:var(--surface-raised);color:var(--text-body);font:500 var(--text-sm)/1 var(--font-body);font-variant-numeric:tabular-nums;cursor:pointer}.chip[aria-pressed=true]{border-color:var(--selected-bg);background:var(--selected-bg);color:var(--selected-fg)}.swatches{display:flex;flex-wrap:wrap;gap:var(--space-3)}.swatch{width:40px;height:40px;padding:0;border:1px solid rgba(0,0,0,.2);border-radius:50%;background-size:cover;background-position:center;cursor:pointer}.swatch[aria-pressed=true]{box-shadow:0 0 0 3px var(--surface-page),0 0 0 5px var(--text-heading)}.meta{margin:0;font-size:var(--text-xs);color:var(--text-muted)}.actionbar{position:fixed;bottom:0;left:50%;z-index:6;transform:translate(-50%);width:100%;max-width:480px;display:grid;gap:var(--space-2);padding:var(--space-3) var(--gutter) calc(var(--space-3) + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface-page) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border)}.btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;text-decoration:none;cursor:pointer}.btn svg{width:20px;height:20px;flex:none}.list{padding-bottom:168px}.items{list-style:none;margin:0;padding:0;display:grid}.item{display:grid;grid-template-columns:1fr auto;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.item-link{display:grid;grid-template-columns:96px 1fr;gap:var(--space-3);align-items:center;min-width:0;color:inherit;text-decoration:none}.item .mini{width:96px;height:68px}.handoff{display:grid;grid-template-columns:112px 1fr;gap:var(--space-4);align-items:center;padding:var(--space-4);border-left:3px solid var(--accent);border-radius:var(--radius-card);background:var(--surface-sunken)}.handoff canvas{width:112px;height:112px;border-radius:4px;background:#fff;image-rendering:pixelated}.handoff h2{margin-bottom:var(--space-1);font-size:var(--text-md)}.handoff p{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.empty{display:grid;gap:var(--space-2);padding:var(--space-8) var(--space-2);text-align:center;color:var(--text-muted)}.empty p{margin:0}.empty b{color:var(--text-heading)}.empty svg{width:16px;height:16px;vertical-align:-3px}.empty .btn{justify-self:center;width:auto;margin-top:var(--space-3);padding:0 var(--space-6)}.toast{position:fixed;left:50%;bottom:calc(160px + env(safe-area-inset-bottom,0px));z-index:20;transform:translate(-50%,16px);padding:10px 16px;border-radius:999px;background:var(--surface-inverse);color:var(--text-inverse);font-size:var(--text-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--speed) var(--ease),transform var(--speed) var(--ease)}.toast.on{opacity:1;transform:translate(-50%)}body.locked{overflow:hidden}.ar{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;background:var(--surface-stage);color:#fff}.ar-bar{display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 10px) var(--space-2) 10px var(--space-5)}.ar-bar b{display:block;font-weight:600}.ar-bar small{color:#ffffffb3;font-variant-numeric:tabular-nums}.ar .icon-btn{color:#fff}.ar-stage{position:relative;flex:1;display:grid;place-items:center}.ar-stage model-viewer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:transparent;--poster-color: transparent}.ar-msg{margin:0;padding:0 var(--space-8);text-align:center;color:#fffc}.ar-btn{position:absolute;left:50%;bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));width:auto;padding:0 var(--space-6);transform:translate(-50%);white-space:nowrap;background:#fff;color:#16151a;box-shadow:0 8px 24px #00000059}.ar-btn:hover{background:#f0efec}.ar-foot{display:grid;grid-template-columns:96px 1fr;gap:var(--space-4);align-items:center;padding:var(--space-4) var(--space-5) calc(var(--space-4) + env(safe-area-inset-bottom,0px));background:#ffffff0f}.ar-foot[hidden]{display:none}.ar-foot canvas{width:96px;height:96px;border-radius:4px;background:#fff;image-rendering:pixelated}.ar-foot p{margin:0;font-size:var(--text-sm);color:#ffffffd9}.home{display:flex;flex-direction:column}.eyebrow{margin:0;font:600 var(--text-xs)/1.2 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--text-accent)}.btn-accent{width:auto;justify-self:start;background:var(--accent);color:var(--text-on-accent);border:0}.btn-accent:hover{background:color-mix(in srgb,var(--accent) 88%,#000)}.btn-accent svg{transition:transform var(--speed) var(--ease)}.btn-accent:hover svg{transform:translate(3px)}.text-link{color:inherit;font:600 var(--text-xs)/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:7px}.hero{background:var(--surface-hero);color:var(--text-on-hero)}.hero-shot{position:relative}.hero-shot canvas{display:block;width:100%;aspect-ratio:4 / 3.1;background:var(--surface-hero)}.hero-shot:after{content:"";position:absolute;inset:auto 0 0;height:50%;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--surface-hero) 70%,transparent) 55%,var(--surface-hero));pointer-events:none}.hero-copy{position:relative;display:grid;gap:var(--space-4);margin-top:calc(-1 * var(--space-5));padding:0 var(--gutter) var(--space-10)}.hero .eyebrow,.viewing .eyebrow{color:var(--accent)}.hero h1{color:var(--text-on-hero);font-size:clamp(2.1rem,9vw,2.6rem);line-height:1.04}.hero-lede{margin:0;max-width:34ch;color:var(--text-on-hero-muted);font-size:var(--text-md)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-6);margin-top:var(--space-3)}.pattern-band{height:4px;background:var(--accent)}:root[data-pattern] .pattern-band{height:42px;background:var(--pattern) 0 0 / auto 28px}.resume{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-4);align-items:center;margin:var(--space-6) var(--gutter) 0;padding:var(--space-4);border-left:4px solid var(--accent);border-radius:var(--radius-card);background:var(--surface-sunken);color:var(--text-heading);text-decoration:none}.resume-n{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-button);background:var(--selected-bg);color:var(--selected-fg);font-weight:600}.resume b,.resume small{display:block}.resume small{color:var(--text-muted);font-size:var(--text-sm)}.resume svg{width:20px;height:20px}.ways-sec,.how{display:grid;gap:var(--space-3);padding:var(--space-12) var(--gutter)}.ways-sec h2,.how h2,.viewing h2{font-size:var(--text-xl)}.ways-sec h2,.how h2{margin-bottom:var(--space-4)}.ways{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-5)}.way{display:grid;grid-template-columns:1fr auto;align-items:center;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-raised);color:inherit;text-decoration:none;transition:border-color var(--speed) var(--ease)}.way:hover{border-color:var(--border-strong)}.way:focus-visible{outline:2px solid var(--text-heading);outline-offset:2px}.way-shot{grid-column:1 / -1;display:block;width:100%;aspect-ratio:16 / 9;background:var(--wall-default)}.way-text{display:grid;gap:2px;padding:var(--space-4);min-width:0}.way-text b{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--display-weight);text-transform:var(--display-case);letter-spacing:var(--display-tracking);color:var(--text-heading)}.way-text span{color:var(--text-body);font-size:var(--text-sm)}.way-text small{margin-top:var(--space-1);color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.way-go{display:grid;place-items:center;width:44px;height:44px;margin-right:var(--space-4);border-radius:var(--radius-button);background:var(--selected-bg);color:var(--selected-fg);transition:background var(--speed) var(--ease),color var(--speed) var(--ease)}.way-go svg{width:20px;height:20px}.way:hover .way-go{background:var(--accent);color:var(--text-on-accent)}.how{background:var(--surface-sunken)}.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-5)}.steps li{display:grid;grid-template-columns:60px 1fr;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--border)}.step-n{font:300 2.25rem/1 var(--font-display);letter-spacing:-.03em;color:var(--text-accent);font-variant-numeric:tabular-nums}.steps h3{margin:0 0 var(--space-1);font-size:var(--text-md)}.steps p{margin:0;color:var(--text-muted);font-size:var(--text-sm)}.viewing{padding:var(--space-10) var(--gutter);background:var(--surface-hero)}:root[data-pattern] .viewing{background:var(--pattern) 0 0 / auto 44px}.viewing-card{display:grid;gap:var(--space-4);padding:var(--space-8) var(--space-6);border-top:4px solid var(--accent);background:var(--surface-hero);color:var(--text-on-hero)}.viewing h2{color:var(--text-on-hero)}.viewing-card p:not(.eyebrow){margin:0;color:var(--text-on-hero-muted)}.viewing-card .btn{margin-top:var(--space-2)}.home-foot{display:grid;justify-items:center;gap:var(--space-4);padding:var(--space-10) var(--gutter) calc(var(--space-10) + env(safe-area-inset-bottom,0px));background:var(--surface-hero);color:var(--text-on-hero-muted);font-size:var(--text-xs);text-align:center}.home-foot .logo{display:block;height:52px;width:auto}.home-foot .logo-text{color:var(--text-on-hero);font-size:var(--text-lg)}.home-foot .text-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-on-hero)}.home-foot .text-link svg{width:14px;height:14px}.home-foot p{margin:0}.home-foot .dev{width:100%;color:var(--text-on-hero-muted);border-top-color:color-mix(in srgb,var(--text-on-hero) 25%,transparent);text-align:left}.home :is(.hero-actions,.viewing-card) a:focus-visible{outline:2px solid var(--text-on-hero);outline-offset:3px}@media(prefers-reduced-motion:no-preference){.hero-shot canvas{animation:wp-fade .9s var(--ease) both}.hero-copy>*{animation:wp-rise .7s var(--ease) both}.hero-copy>:nth-child(2){animation-delay:80ms}.hero-copy>:nth-child(3){animation-delay:.16s}.hero-copy>:nth-child(4){animation-delay:.24s}}@keyframes wp-fade{0%{opacity:0}}@keyframes wp-rise{0%{opacity:0;transform:translateY(14px)}}@media(min-width:520px){#app{box-shadow:0 0 0 1px var(--border)}:root[data-pattern] body{background:var(--pattern) 0 0 / auto 64px fixed}:root[data-pattern] #app{box-shadow:0 0 0 1px #0009,0 24px 80px #00000073}}
