:root{--ivory: #f7f2ea;--deep-green: #1e2a20;--gold: #c9a86a;--blush: #e8c9c0;--serif: "Cormorant Garamond", "Cormorant", Georgia, serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:auto}body{background:var(--ivory);font-family:var(--serif);color:var(--deep-green);overflow-x:hidden}#app,#app canvas{position:fixed;inset:0;width:100vw;height:100vh;display:block}#scroll-spacer{width:1px;pointer-events:none}#ui{position:fixed;inset:0;pointer-events:none;z-index:5}#threshold-dim{position:absolute;inset:0;background:#0c0b09;opacity:0}#scroll-hint{position:absolute;left:50%;bottom:6vh;transform:translate(-50%);text-align:center;letter-spacing:.42em;text-transform:uppercase;font-size:.72rem;font-weight:400;color:var(--ivory);text-shadow:0 1px 14px rgba(20,24,18,.6);opacity:.85;transition:opacity .6s ease}#scroll-hint i{display:block;width:1px;height:38px;margin:14px auto 0;background:linear-gradient(to bottom,var(--ivory),transparent);animation:hint-drop 2.4s ease-in-out infinite}@keyframes hint-drop{0%{transform:scaleY(0);transform-origin:top;opacity:0}35%{transform:scaleY(1);transform-origin:top;opacity:.9}70%{transform:scaleY(1);transform-origin:bottom;opacity:.9}to{transform:scaleY(0);transform-origin:bottom;opacity:0}}.caption{position:absolute;left:50%;top:18vh;transform:translate(-50%);white-space:nowrap;letter-spacing:.5em;text-indent:.5em;text-transform:uppercase;font-size:clamp(.85rem,1.6vw,1.25rem);font-weight:300;color:var(--ivory);text-shadow:0 1px 22px rgba(20,24,18,.55);opacity:0}.caption.dark{color:var(--deep-green);text-shadow:0 1px 18px rgba(247,242,234,.4)}#gallery-label{position:absolute;left:50%;bottom:7vh;transform:translate(-50%);text-align:center;opacity:0;pointer-events:none}#gallery-label.live{pointer-events:auto;cursor:pointer}#gallery-label b{display:block;font-weight:400;font-size:clamp(1.5rem,3.4vw,2.4rem);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--ivory);text-shadow:0 2px 22px rgba(10,10,8,.65)}#gallery-label span{display:block;margin-top:.7vh;font-size:.72rem;letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;color:var(--gold);text-shadow:0 1px 14px rgba(10,10,8,.6)}#gallery-label em{display:block;margin-top:1.6vh;font-style:normal;font-size:.64rem;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:#f7f2eab8;animation:tap-pulse 2.6s ease-in-out infinite}@keyframes tap-pulse{0%,to{opacity:.45}50%{opacity:.95}}#finale{position:absolute;left:50%;bottom:14vh;transform:translate(-50%);text-align:center;opacity:0;pointer-events:none}#finale.live{pointer-events:auto}#wordmark{display:block;width:clamp(180px,24vw,320px);height:auto;margin:0 auto 3.2vh;filter:drop-shadow(0 2px 18px rgba(12,12,10,.45))}#cta{display:inline-block;padding:1em 2.6em;border:1px solid var(--gold);color:var(--ivory);background:#141a146b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-decoration:none;letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;font-size:.78rem;transition:background .4s ease,color .4s ease,box-shadow .4s ease}#cta:hover{background:var(--gold);color:var(--deep-green);box-shadow:0 10px 38px #c9a86a59}#panel{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;visibility:hidden}#panel.open{visibility:visible}#panel-backdrop{position:absolute;inset:0;background:#0c0b098c;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);opacity:0;transition:opacity .5s ease}#panel.open #panel-backdrop{opacity:1}#panel-card{position:relative;width:min(560px,calc(100vw - 2.4rem));max-height:86vh;overflow-y:auto;background:linear-gradient(168deg,#faf6ee,#f1e9da);border:1px solid rgba(201,168,106,.5);padding:clamp(1.8rem,4vw,3rem);text-align:center;box-shadow:0 30px 90px #0a0a0880;transform:translateY(26px);opacity:0;transition:transform .55s cubic-bezier(.2,.7,.2,1),opacity .55s ease}#panel.open #panel-card{transform:translateY(0);opacity:1}#panel-close{position:absolute;top:.7rem;right:1rem;background:none;border:none;font-size:1.9rem;font-family:var(--serif);color:var(--deep-green);opacity:.55;cursor:pointer;transition:opacity .25s}#panel-close:hover{opacity:1}#panel-collection{font-size:.66rem;letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem}#panel-name{font-weight:400;font-size:clamp(1.8rem,4.4vw,2.6rem);letter-spacing:.18em;text-indent:.18em;text-transform:uppercase;margin-bottom:.5rem}#panel-family{font-size:.74rem;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;opacity:.6;margin-bottom:1.6rem}#panel-story{font-size:1.04rem;line-height:1.75;font-style:italic;opacity:.88;margin-bottom:1.8rem}#panel-notes{border-top:1px solid rgba(30,42,32,.16);border-bottom:1px solid rgba(30,42,32,.16);padding:1.1rem 0;margin-bottom:1.7rem;text-align:left}.note-row{display:grid;grid-template-columns:4.6rem 1fr;gap:.8rem;padding:.42rem 0;align-items:baseline}.note-row span{font-size:.64rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}.note-row em{font-style:normal;font-size:.92rem;line-height:1.5;opacity:.85}#panel-actions{display:flex;align-items:center;justify-content:center;gap:1.4rem;flex-wrap:wrap}#panel-price{font-size:.8rem;letter-spacing:.26em;text-transform:uppercase;opacity:.7}#panel-buy{display:inline-block;padding:.95em 2.4em;background:var(--deep-green);border:1px solid var(--deep-green);color:var(--ivory);text-decoration:none;letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;font-size:.74rem;transition:background .35s ease,color .35s ease}#panel-buy:hover{background:var(--gold);border-color:var(--gold);color:var(--deep-green)}#loader{position:fixed;inset:0;z-index:50;background:var(--ivory);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4vh;transition:opacity 1.1s ease}#loader.done{opacity:0;pointer-events:none}#loader-wordmark{display:block;width:clamp(170px,22vw,280px);height:auto}#loader-bar{width:min(280px,56vw);height:1px;background:#1e2a202e;overflow:hidden}#loader-bar span{display:block;height:100%;width:0%;background:var(--gold);transition:width .35s ease}#loader-note{font-size:.7rem;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;opacity:.45}@media(max-width:640px){.caption{white-space:normal;text-align:center;max-width:86vw}#room-exit{top:2.4vh;left:4vw;transform:none;font-size:.6rem;letter-spacing:.18em;text-indent:.18em;padding:.5em .4em}#restart-btn{top:2.4vh;right:4vw;font-size:.56rem;letter-spacing:.16em;text-indent:.16em;padding:.5em .9em}#gallery-label{bottom:10vh;width:92vw}#gallery-label b{font-size:1.5rem;letter-spacing:.18em;text-indent:.18em}#gallery-label span{font-size:.62rem;letter-spacing:.26em;text-indent:.26em}#gallery-label em{font-size:.58rem}#st-prev,#st-next{font-size:2.4rem;padding:.2em;top:46%}#st-prev{left:1vw}#st-next{right:1vw}#room-choice{bottom:11vh;width:92vw}#rc-row{gap:.6rem}#rc-mid{min-width:9rem}#rc-name{font-size:1.25rem;letter-spacing:.16em;text-indent:.16em}.rc-arrow{font-size:2.2rem}#rc-enter{padding:.8em 1.8em;font-size:.68rem}#wordmark{width:56vw}#cta{font-size:.68rem;padding:.9em 1.8em}}#bottom-scrim{position:absolute;left:0;right:0;bottom:0;height:42vh;background:linear-gradient(to top,#0808069e,#08080647 38%,#08080600);opacity:0;transition:opacity .6s ease;pointer-events:none}#room-choice{position:absolute;left:50%;bottom:8vh;transform:translate(-50%);text-align:center;opacity:0;transition:opacity .6s ease;pointer-events:none}#room-choice.live{pointer-events:auto}#room-choice>p{font-size:.7rem;letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:#f7f2eacc;text-shadow:0 1px 14px rgba(10,10,8,.7);margin-bottom:1.8vh}#rc-row{display:flex;align-items:center;justify-content:center;gap:1.4rem}#rc-mid{display:flex;flex-direction:column;align-items:center;gap:1.2vh;min-width:13rem}#rc-name{font-weight:400;font-size:clamp(1.4rem,3vw,2.1rem);letter-spacing:.26em;text-indent:.26em;text-transform:uppercase;color:var(--ivory);text-shadow:0 2px 20px rgba(8,8,6,.85)}.rc-arrow{font-family:var(--serif);font-size:2.8rem;line-height:1;background:none;border:none;color:var(--ivory);text-shadow:0 2px 16px rgba(8,8,6,.8);cursor:pointer;padding:.2em .4em;transition:transform .2s ease,color .2s ease}.rc-arrow:hover{transform:scale(1.2);color:var(--gold)}#rc-enter{font-family:var(--serif);padding:.85em 2.6em;border:1px solid var(--gold);color:var(--ivory);background:#141a1480;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;font-size:.74rem;cursor:pointer;transition:background .35s ease,color .35s ease,transform .35s ease}#rc-enter:hover{background:var(--gold);color:var(--deep-green);transform:translateY(-2px)}#room-exit{position:absolute;top:4.5vh;left:50%;transform:translate(-50%);font-family:var(--serif);background:none;border:none;color:#f7f2eaeb;text-shadow:0 1px 14px rgba(10,10,8,.65);letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;font-size:.7rem;cursor:pointer;opacity:0;transition:opacity .5s ease;pointer-events:none;padding:.6em 1em}#room-exit.live{pointer-events:auto}#room-exit:hover{text-decoration:underline}#restart-btn{position:absolute;top:4.5vh;right:3.5vw;font-family:var(--serif);background:none;border:1px solid rgba(247,242,234,.4);color:#f7f2eae6;text-shadow:0 1px 12px rgba(10,10,8,.6);letter-spacing:.26em;text-indent:.26em;text-transform:uppercase;font-size:.64rem;cursor:pointer;opacity:0;transition:opacity .5s ease,background .3s ease,color .3s ease;pointer-events:none;padding:.7em 1.3em;border-radius:999px}#restart-btn.live{pointer-events:auto}#restart-btn:hover{background:#f7f2eaeb;color:var(--deep-green);text-shadow:none}#veil{position:fixed;inset:0;z-index:40;background:var(--ivory);opacity:0;pointer-events:none;transition:opacity .65s ease}#veil.show{opacity:1;pointer-events:auto}#st-prev,#st-next{position:absolute;top:50%;transform:translateY(-50%);font-family:var(--serif);font-size:3.4rem;line-height:1;background:none;border:none;color:var(--ivory);text-shadow:0 2px 16px rgba(10,10,8,.65);cursor:pointer;opacity:0;transition:opacity .4s ease,transform .25s ease;pointer-events:none;padding:.4em .5em}#st-prev{left:2vw}#st-next{right:2vw}#st-prev.live,#st-next.live{pointer-events:auto}#st-prev:hover,#st-next:hover{transform:translateY(-50%) scale(1.15)}
