:root{--ink: #0a0d10;--ink-2: #11171c;--mist: #1a232b;--moon: #f3ede2;--bone: #e8dfcf;--sand: #c5b08a;--gold: #c8a96a;--ember: #d6804b;--plumeria: #f0c8c6;--teal: #2d4f5c;--rule: rgba(232,223,207,.1);--scene-bg: var(--ink);--scene-fg: var(--moon);--scene-accent: var(--gold);--scene-haze: rgba(10,13,16,.55);--font-display: "Cormorant Garamond", "Shippori Mincho B1", serif;--font-body: "Shippori Mincho B1", "Noto Serif JP", serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--ink);color:var(--moon);font-family:var(--font-body);font-size:16px;line-height:1.85;font-weight:300;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.eyebrow{font-family:var(--font-display);font-style:italic;font-size:13px;letter-spacing:.18em;color:var(--scene-accent);text-transform:none;opacity:.85}.eyebrow-en{font-family:var(--font-display);font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--scene-accent);opacity:.7}.h-display{font-family:var(--font-display);font-weight:400;font-size:clamp(48px,8vw,120px);line-height:1.15;letter-spacing:-.005em;word-break:keep-all;line-break:strict;overflow-wrap:anywhere}.h-poem{font-family:var(--font-body);font-weight:300;font-size:clamp(22px,3.2vw,40px);line-height:1.9;letter-spacing:.06em;word-break:keep-all;line-break:strict;overflow-wrap:anywhere}.lede{font-size:clamp(15px,1.2vw,18px);line-height:2;letter-spacing:.05em;color:#f3ede2bf;max-width:36ch;word-break:keep-all;line-break:strict;overflow-wrap:anywhere}.lines{display:inline}.lines-line{display:block;word-break:keep-all;line-break:strict;overflow-wrap:anywhere}.scene{position:relative;width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate;color:var(--scene-fg)}.scene .bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;filter:saturate(.78) brightness(.74);transform:scale(1.04)}.scene .haze{position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 80% at 50% 100%,transparent 0%,var(--scene-haze) 70%),linear-gradient(180deg,rgba(10,13,16,.45) 0%,rgba(10,13,16,.2) 30%,rgba(10,13,16,.15) 60%,var(--scene-haze) 100%)}.scene .canvas{position:relative;width:100%;max-width:1280px;padding:0 clamp(24px,6vw,96px)}[data-scene=arrival]{--scene-bg:#05080b;--scene-fg:#e8dfcf;--scene-accent:#c8a96a;--scene-haze:rgba(5,8,11,.7)}[data-scene=dawn]{--scene-fg:#f3ede2;--scene-accent:#d6804b;--scene-haze:rgba(20,14,12,.45)}[data-scene=lanai]{--scene-fg:#f3ede2;--scene-accent:#c8a96a;--scene-haze:rgba(28,22,16,.45)}[data-scene=garden]{--scene-fg:#f3ede2;--scene-accent:#a9c2c4;--scene-haze:rgba(20,30,32,.5)}[data-scene=dusk]{--scene-fg:#f3ede2;--scene-accent:#d6804b;--scene-haze:rgba(40,18,12,.5)}[data-scene=night]{--scene-fg:#f3ede2;--scene-accent:#c8a96a;--scene-haze:rgba(4,7,11,.7)}[data-scene=atelier]{--scene-bg:#0a0d10;--scene-fg:#e8dfcf;--scene-accent:#c8a96a;--scene-haze:rgba(10,13,16,.6)}[data-scene=carry]{--scene-bg:#0e1418;--scene-fg:#f3ede2;--scene-accent:#c8a96a;--scene-haze:rgba(10,13,16,.55)}.scene .canvas>*{opacity:0;transform:translateY(18px);transition:opacity 1.4s ease,transform 1.4s ease}.scene.in .canvas>*{opacity:1;transform:translateY(0)}.scene.in .canvas>*:nth-child(2){transition-delay:.2s}.scene.in .canvas>*:nth-child(3){transition-delay:.4s}.scene.in .canvas>*:nth-child(4){transition-delay:.6s}.scene.in .canvas>*:nth-child(5){transition-delay:.8s}.piece{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:18px;cursor:pointer;background:transparent;border:none;padding:0;color:inherit;text-align:center;font:inherit;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.piece:hover{transform:translateY(-4px)}.piece .photo-wrap{position:relative;width:clamp(170px,17vw,240px);aspect-ratio:1/1;border-radius:8px;overflow:hidden;box-shadow:0 30px 80px #0000008c,0 0 0 1px #e8dfcf1a}.piece-sm .photo-wrap{width:clamp(140px,14vw,190px)}.piece-lg .photo-wrap{width:clamp(220px,22vw,320px)}.piece .photo{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.92) contrast(.95);transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter 1s}.piece:hover .photo{transform:scale(1.06);filter:saturate(1.04) contrast(1)}.piece .photo-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,11,14,.75) 100%);pointer-events:none;z-index:1}.piece .pulse{position:absolute;bottom:12px;right:12px;width:10px;height:10px;border-radius:50%;background:var(--scene-accent);box-shadow:0 0 0 0 var(--scene-accent);animation:piecePulse 2.6s ease-out infinite;z-index:2}@keyframes piecePulse{0%{box-shadow:0 0 #c8a96aa6}70%{box-shadow:0 0 0 18px #c8a96a00}to{box-shadow:0 0 #c8a96a00}}.piece .hover-cue{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-family:var(--font-display);font-style:italic;font-size:11px;letter-spacing:.32em;color:var(--scene-fg);text-transform:uppercase;opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s;z-index:2}.piece:hover .hover-cue{opacity:1;transform:translateY(0)}.piece .meta{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:clamp(180px,20vw,260px);width:100%}.piece .name{font-family:var(--font-display);font-style:italic;font-size:14px;letter-spacing:.04em;line-height:1.5;color:var(--scene-fg);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.piece .price{font-family:var(--font-display);font-size:12px;letter-spacing:.22em;color:var(--scene-accent)}.scene-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:clamp(40px,6vw,96px);align-items:center}.scene-grid.flip{grid-template-columns:minmax(0,auto) minmax(0,1fr)}.scene-grid>.text{min-width:0}.scene-grid>.piece-slot{display:flex;justify-content:center}@media(max-width:880px){.scene-grid,.scene-grid.flip{grid-template-columns:1fr;gap:56px;text-align:center}.scene-grid>.piece-slot{order:1}.scene-grid>.text{order:2}.scene-grid>.text .lede{margin-left:auto;margin-right:auto}}.topbar{position:fixed;top:0;left:0;right:0;z-index:50;padding:22px clamp(20px,3vw,40px);display:flex;align-items:center;justify-content:space-between;pointer-events:none;font-family:var(--font-display);background:linear-gradient(180deg,rgba(8,11,14,.55) 0%,transparent 100%)}.topbar .mark,.topbar nav{pointer-events:auto}.topbar .mark{font-size:18px;letter-spacing:.5em;color:var(--moon);opacity:.92}.topbar nav{display:flex;gap:clamp(14px,2vw,28px);align-items:center}.topbar nav a{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.1;color:var(--moon);opacity:.78;transition:opacity .3s,color .3s}.topbar nav a small{font-family:var(--font-display);font-size:9px;letter-spacing:.42em;text-transform:uppercase;color:var(--scene-accent);opacity:.7;margin-bottom:3px}.topbar nav a span{font-style:italic;font-size:14px;letter-spacing:.06em}.topbar nav a:hover{opacity:1;color:var(--gold)}.topbar nav .cart-count{font-family:var(--font-display);font-size:12px;letter-spacing:.04em;color:var(--gold);margin-left:4px}.topbar .audio-btn{width:36px;height:36px;border-radius:50%;border:1px solid rgba(232,223,207,.18);background:#0a0d1073;color:var(--moon);font-family:var(--font-display);font-style:italic;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s,color .3s}.topbar .audio-btn:hover{border-color:var(--gold);color:var(--gold)}@media(max-width:640px){.topbar{padding:14px 18px}.topbar .mark{font-size:14px}.topbar nav a small{display:none}.topbar nav a span{font-size:12px}}.compass{position:fixed;right:24px;bottom:24px;width:64px;height:64px;border-radius:50%;background:#0a0d10b3;backdrop-filter:blur(10px);border:1px solid rgba(232,223,207,.18);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:60;transition:transform .5s ease,border-color .5s}.compass:hover{transform:rotate(45deg);border-color:var(--gold)}.compass svg{width:28px;height:28px}.compass-overlay{position:fixed;inset:0;background:#05080beb;backdrop-filter:blur(20px);z-index:70;opacity:0;pointer-events:none;transition:opacity .6s ease;display:flex;flex-direction:column;align-items:center;justify-content:center}.compass-overlay.open{opacity:1;pointer-events:auto}.compass-overlay nav{display:flex;flex-direction:column;gap:24px;text-align:center}.compass-overlay a{font-family:var(--font-display);font-size:clamp(28px,4vw,48px);font-style:italic;letter-spacing:.04em;color:var(--moon);opacity:.5;transition:opacity .4s;position:relative}.compass-overlay a:hover{opacity:1}.compass-overlay a small{display:block;font-family:var(--font-display);font-style:normal;font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}.compass-close{position:absolute;top:32px;right:32px;width:44px;height:44px;border-radius:50%;border:1px solid var(--rule);background:transparent;color:var(--moon);cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center}.lantern{position:fixed;left:28px;bottom:28px;z-index:60;cursor:pointer;display:flex;align-items:center;gap:14px;background:transparent;border:none;color:var(--moon);font-family:var(--font-display);font-style:italic;font-size:14px;letter-spacing:.12em;opacity:.85;transition:opacity .4s}.lantern:hover{opacity:1}.lantern .flame{width:18px;height:24px;border-radius:50%/60% 60% 40% 40%;background:radial-gradient(ellipse at 50% 70%,#ffd28a,#d6804b,#6e3a1c);box-shadow:0 0 28px #d6804bb3,0 0 64px #d6804b59;animation:flicker 1.6s ease-in-out infinite alternate}@keyframes flicker{0%{transform:scale(1) translateY(0);opacity:.95}50%{transform:scale(1.06) translateY(-1px);opacity:1}to{transform:scale(.97) translateY(1px);opacity:.85}}.conversation{position:fixed;inset:0;z-index:80;background:radial-gradient(140% 90% at 30% 80%,#d6804b2e,#05080bf7 70%);backdrop-filter:blur(20px);opacity:0;pointer-events:none;transition:opacity .7s ease;display:flex;align-items:stretch;justify-content:center}.conversation.open{opacity:1;pointer-events:auto}.conversation .stage{width:100%;max-width:760px;padding:clamp(40px,8vh,80px) 32px 56px;display:flex;flex-direction:column;position:relative;overflow-y:auto}.conversation .head{font-family:var(--font-display);font-style:italic;font-size:clamp(20px,2.4vw,28px);letter-spacing:.18em;margin-bottom:44px;color:var(--moon);opacity:.92;text-align:center;line-height:1.6}.conversation .stream{display:flex;flex-direction:column;gap:22px;padding:8px 0}.conversation .turn{font-size:17px;line-height:2;letter-spacing:.05em;max-width:32em}.conversation .turn.you{align-self:flex-end;color:#e8dfcfb3;font-style:italic;border-right:1px solid var(--gold);padding-right:18px;text-align:right}.conversation .turn.host{color:var(--moon);border-left:1px solid var(--ember);padding-left:22px}.conversation .turn.host.welcome{font-family:var(--font-display);font-style:italic;font-size:clamp(20px,2.2vw,26px);line-height:1.85;letter-spacing:.08em;color:var(--moon);border-left-color:var(--ember);border-left-width:2px;padding:4px 0 6px 26px;max-width:38em}.conversation .turn.host .ref{display:block;margin-top:10px;font-family:var(--font-display);font-style:italic;font-size:13px;letter-spacing:.1em;color:var(--gold)}.conversation .ask{position:static;margin-top:36px;display:flex;gap:12px;align-items:stretch}.conversation .ask textarea{flex:1;background:#e8dfcf0f;border:1px solid rgba(200,169,106,.45);color:var(--moon);padding:20px 22px;font-family:var(--font-body);font-size:17px;line-height:1.7;letter-spacing:.04em;resize:vertical;min-height:110px;border-radius:2px;transition:border-color .3s,background .3s}.conversation .ask textarea:focus{outline:none;border-color:var(--gold);background:#e8dfcf17}.conversation .ask textarea::placeholder{color:#e8dfcf73;font-style:italic}.conversation .ask button{padding:0 32px;min-width:130px;background:#c8a96a2e;border:1px solid var(--gold);color:var(--moon);font-family:var(--font-display);font-style:italic;font-size:15px;letter-spacing:.24em;cursor:pointer;transition:background .4s,color .4s}.conversation .ask button:hover{background:#c8a96a52;color:var(--moon)}@media(max-width:640px){.conversation .ask{flex-direction:column}.conversation .ask button{padding:16px 20px;min-width:0}}.conversation .close{position:absolute;top:28px;right:28px;background:transparent;border:1px solid var(--rule);width:44px;height:44px;border-radius:50%;color:var(--moon);cursor:pointer;font-size:22px}.piece-overlay{position:fixed;inset:0;z-index:75;background:#05080beb;backdrop-filter:blur(16px);opacity:0;pointer-events:none;transition:opacity .6s;display:flex;align-items:center;justify-content:center;padding:32px}.piece-overlay.open{opacity:1;pointer-events:auto}.piece-overlay .panel{display:grid;grid-template-columns:1fr 1fr;gap:64px;max-width:1100px;width:100%;align-items:center}.piece-overlay .panel .photo{aspect-ratio:1/1;background-size:cover;background-position:center;box-shadow:0 40px 100px #0009}.piece-overlay h2{font-family:var(--font-display);font-weight:400;font-size:clamp(32px,4vw,56px);line-height:1.15;letter-spacing:-.01em;margin:14px 0 18px}.piece-overlay .price{font-family:var(--font-display);font-style:italic;font-size:18px;color:var(--gold);letter-spacing:.08em}.piece-overlay .actions{margin-top:28px;display:flex;gap:14px}.piece-overlay .actions button,.piece-overlay .actions a{padding:14px 26px;font-family:var(--font-display);font-style:italic;letter-spacing:.2em;font-size:13px;cursor:pointer;border:1px solid rgba(200,169,106,.55);background:#0a0d108c;backdrop-filter:blur(6px);color:var(--bone);transition:background .4s,color .4s,border-color .4s}.piece-overlay .actions .primary{background:#c8a96a2e;border-color:var(--gold);color:var(--moon)}.piece-overlay .actions button:hover,.piece-overlay .actions a:hover{background:#c8a96a29;border-color:var(--gold);color:var(--gold)}.piece-overlay .actions .primary:hover{background:#c8a96a52;color:var(--moon)}.piece-overlay .close{position:absolute;top:24px;right:24px;width:44px;height:44px;border-radius:50%;border:1px solid var(--rule);background:transparent;color:var(--moon);font-size:22px;cursor:pointer}.veil{position:fixed;inset:0;z-index:100;background:linear-gradient(180deg,#05080b,#0a0d10);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;transition:opacity 1.4s ease}.veil.gone{opacity:0;pointer-events:none}.veil .mark{font-family:var(--font-display);font-size:clamp(56px,9vw,110px);letter-spacing:.4em;color:var(--gold);margin-bottom:32px}.veil .invite{font-family:var(--font-display);font-style:italic;font-size:clamp(18px,2vw,26px);color:var(--moon);opacity:.85;margin-bottom:40px;max-width:28ch;line-height:1.8}.veil .doors{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.veil .doors button{background:transparent;border:1px solid var(--gold);color:var(--gold);padding:14px 28px;font-family:var(--font-display);font-style:italic;letter-spacing:.2em;font-size:13px;cursor:pointer;transition:background .4s}.veil .doors button:hover{background:#c8a96a1f}.veil .doors button.silent{color:var(--bone);border-color:var(--rule)}.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.admin-side{background:var(--ink-2);border-right:1px solid var(--rule);padding:32px 24px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px}.admin-side .brand{font-family:var(--font-display);font-size:28px;letter-spacing:.4em;color:var(--gold);margin-bottom:24px}.admin-side a{display:block;padding:8px 0;font-size:13px;letter-spacing:.18em;color:#e8dfcfb3;text-transform:uppercase;transition:color .3s}.admin-side a:hover,.admin-side a.active{color:var(--gold)}.admin-main{padding:48px clamp(24px,4vw,64px)}.admin-main h1{font-family:var(--font-display);font-size:48px;letter-spacing:.02em;margin-bottom:8px}.admin-main .h2{font-family:var(--font-display);font-size:28px}.admin-main .h3{font-family:var(--font-display);font-size:20px}.muted{color:#e8dfcf80}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:20px 0}.card{padding:18px;background:var(--ink-2);border:1px solid var(--rule)}.card .k{font-family:var(--font-display);font-style:italic;font-size:12px;letter-spacing:.18em;color:var(--gold)}.card .v{font-family:var(--font-display);font-size:2rem;padding-top:10px}.tag{display:inline-block;padding:2px 8px;background:#c8a96a1a;color:var(--gold);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.table{width:100%;border-collapse:collapse;margin:12px 0}.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--rule);text-align:left;font-size:13px}.table th{font-family:var(--font-display);font-style:italic;font-size:11px;letter-spacing:.18em;color:var(--gold)}.btn{display:inline-block;padding:13px 24px;border:1px solid rgba(232,223,207,.32);background:#0a0d108c;backdrop-filter:blur(6px);font-family:var(--font-display);font-style:italic;font-size:12px;letter-spacing:.22em;color:var(--bone);cursor:pointer;transition:all .4s ease}.btn.gold{color:var(--moon);border-color:var(--gold);background:#c8a96a2e}.btn:hover{color:var(--gold);border-color:var(--gold);background:#c8a96a29}.btn.gold:hover{color:var(--moon);background:#c8a96a52}code{font-family:var(--font-mono);font-size:12px;color:var(--gold)}@media(max-width:720px){.scene .canvas{padding:0 24px}.piece .photo{width:140px}.piece-overlay .panel{grid-template-columns:1fr;gap:24px}.compass{right:16px;bottom:16px;width:56px;height:56px}.lantern{left:16px;bottom:16px}.audio-toggle{top:16px;right:16px}.admin-shell{grid-template-columns:1fr}.admin-side{position:static;height:auto}}
