/* ============ round four: advanced ============ */
/* realtime: ghost cursor + typing */
#ghost{position:fixed;left:0;top:0;z-index:118;pointer-events:none;opacity:0;transform:translate(var(--x,-100px),var(--y,-100px));transition:transform 2.4s ease-out,opacity .5s;display:flex;align-items:center;gap:6px}
#ghost.on{opacity:1}#ghost span{font-size:var(--t5);color:var(--pc,#fff);filter:drop-shadow(0 0 10px var(--pc,#fff));animation:hbeat 1.6s infinite}
#ghost b{font:500 var(--t1) var(--ui);padding:2px 8px;border-radius:99px;background:rgba(5,8,25,.8);border:1px solid var(--pc,#fff);color:#fff}
#typing{padding:4px 20px;font-size:var(--t2);color:#9a93a8;font-style:italic;min-height:1.2em;background:#fff}#typing:empty{display:none}
/* sensors */
#motion-btn{margin:10px auto 0;display:block}#motion-btn[hidden]{display:none}
/* photo booth */
.booth-box{margin-top:20px;padding:20px;border-radius:22px;background:var(--card);border:1px solid rgba(255,217,138,.28);text-align:center}
.cam{position:relative;width:min(420px,100%);aspect-ratio:3/4;margin:0 auto;border-radius:18px;overflow:hidden;background:#000;border:1px solid rgba(255,217,138,.4)}
.cam video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.cam canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.booth-ctl{display:flex;gap:10px;justify-content:center;margin-top:12px}.booth-ctl .btn-gold{margin:0;padding:12px 22px}
.strip{display:flex;gap:10px;overflow-x:auto;padding:14px 4px 6px;scrollbar-width:thin}
.strip figure{flex:none;width:120px}.strip img{width:120px;height:160px;object-fit:cover;border-radius:12px;border:2px solid color-mix(in srgb,var(--pc) 60%,transparent)}.strip figcaption{font-size:var(--t1);color:var(--dim);margin-top:4px}
/* search */
#search{position:fixed;inset:0;z-index:235;background:rgba(3,5,18,.9);backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;padding:8vh 14px}
#search[hidden]{display:none}
.search-box{width:min(640px,100%);max-height:84vh;display:flex;flex-direction:column;border-radius:22px;background:linear-gradient(170deg,#141c46,#0a1030);border:1px solid rgba(255,217,138,.35);box-shadow:0 40px 100px rgba(0,0,0,.7);overflow:hidden}
.search-top{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--line)}
#search-in{flex:1;padding:12px 16px;border-radius:99px;border:1px solid var(--line);background:rgba(8,12,36,.7);color:var(--text);font:inherit;font-size:var(--t3);outline:none}
#search-out{overflow-y:auto;padding:8px 12px 16px}
#search-out h4{font:600 var(--t1) var(--ui);letter-spacing:.3em;color:var(--gold);margin:12px 6px 4px;text-transform:uppercase}
.sr{display:flex;gap:12px;width:100%;text-align:left;padding:10px;border-radius:12px;align-items:center}.sr:hover{background:rgba(255,255,255,.06)}
.sr img{width:44px;height:44px;border-radius:8px;object-fit:cover;flex:none}.sr span{min-width:0}.sr b{display:block;font-size:var(--t2)}.sr small{display:block;font-size:var(--t1);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
mark{background:rgba(255,217,138,.35);color:#fff;border-radius:3px;padding:0 2px}
/* pin */
.pin-gate{position:absolute;inset:0;z-index:5;display:grid;place-items:center;border-radius:inherit;background:rgba(7,11,31,.7);backdrop-filter:blur(10px);font:600 var(--t3) var(--ui);color:var(--gold)}
html.pin-locked #capsules,html.pin-locked #notebook,html.pin-locked #jar,html.pin-locked #daily,html.pin-locked #forever .term.big{position:relative}
html.pin-locked #forever .env .env-letter,html.pin-locked #forever .typed{filter:blur(8px)}
#pin-ov{position:fixed;inset:0;z-index:245;background:rgba(3,5,18,.9);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}#pin-ov[hidden]{display:none}
#pin-form{width:min(360px,100%);padding:30px 24px;border-radius:24px;text-align:center;background:linear-gradient(170deg,#141c46,#0a1030);border:1px solid rgba(255,217,138,.4);position:relative}
#pin-form h3{font:600 var(--t5) var(--ui);margin-bottom:6px}#pin-form p{color:var(--dim);font-size:var(--t2);margin-bottom:14px}
#pin-in{width:100%;padding:14px;border-radius:14px;border:1px solid var(--line);background:rgba(8,12,36,.7);color:#fff;font:600 28px/1 var(--disp);letter-spacing:.5em;text-align:center;outline:none}
#pin-form .btn-gold{margin-top:14px;width:100%;padding:12px}
#pin-form.wrong{animation:cwig .5s}
/* dashboard */
.dlegend{display:flex;gap:16px;justify-content:center;font-size:var(--t2);margin-bottom:10px}.dlegend span{color:var(--pc)}
.dq-nudge{text-align:center;color:var(--gold);padding:10px;border:1px dashed rgba(255,217,138,.4);border-radius:12px;margin-bottom:14px;font-size:var(--t2)}.dq-ok{text-align:center;color:#7be0a8;margin-bottom:14px;font-size:var(--t2)}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dm{padding:12px;border-radius:16px;background:var(--card);border:1px solid var(--line)}.dm h4{font:600 var(--t1) var(--ui);color:var(--dim);margin-bottom:8px;letter-spacing:.1em}
.bars{display:flex;gap:4px;align-items:flex-end;height:90px}.wk{flex:1;display:flex;gap:2px;align-items:flex-end;height:100%;position:relative}
.wk i{flex:1;height:var(--h,0%);min-height:2px;border-radius:3px 3px 0 0;background:var(--pc);opacity:.85;transition:height .8s}.wk small{position:absolute;bottom:-16px;left:0;right:0;text-align:center;font-size:var(--t1);color:var(--dim)}
.bars{margin-bottom:18px}
.dtot{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;font-size:var(--t2)}.dtot div{padding:10px;border-radius:12px;background:rgba(0,0,0,.2);border-left:3px solid var(--pc)}.dtot b{display:block;margin-bottom:4px;color:var(--pc)}.dtot span{display:block;color:var(--dim)}.dtot strong{color:#fff}
@media(max-width:560px){.dgrid,.dtot{grid-template-columns:1fr}}
/* watch together */
.watch-bar{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:12px;flex-wrap:wrap}
#watch-tog.on{background:var(--goldg);color:#3a2606}
.cine-chat{width:min(680px,100%);margin:12px auto 0;border-radius:16px;background:var(--card);border:1px solid var(--line);padding:10px}
.cine-chat[hidden]{display:none}
#cine-msgs{max-height:140px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:4px;font-size:var(--t2)}
.cm{padding:6px 10px;border-radius:10px;background:rgba(0,0,0,.25);border-left:3px solid var(--pc);text-align:left}.cm b{color:var(--pc);margin-right:6px;font-size:var(--t1)}
#cine-form{display:flex;gap:6px;margin-top:8px}#cine-in{flex:1;min-width:0;padding:9px 12px;border-radius:99px;border:1px solid var(--line);background:rgba(10,15,40,.7);color:var(--text);font:inherit;outline:none}
/* wishes wall + guest */
.wall-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.wish-card{padding:14px;border-radius:14px;background:#fbf5ea;color:#3a3550;font-family:var(--serif);transform:rotate(calc(var(--r,0) * 1deg))}.wish-card p{font-size:var(--t2);line-height:1.6}.wish-card b{display:block;margin-top:8px;font:600 var(--t1) var(--ui);color:#b3862d}.wish-card small{font-size:var(--t1);color:#9a93a8}
.wall-form{display:flex;gap:8px;margin-top:14px}#wall-in{flex:1;min-width:0;padding:12px 16px;border-radius:99px;border:1px solid var(--line);background:rgba(10,15,40,.7);color:var(--text);font:inherit;outline:none}
html.guest #forever .envs,html.guest #forever .env-hint,html.guest #forever .term.big,html.guest #capsules,html.guest #notebook,html.guest #jar,html.guest #daily,html.guest #garden,html.guest #chapter2,html.guest #booth,html.guest #dash,html.guest #who,html.guest #who-pick,html.guest .hearts2,html.guest #quiz,html.guest #push-btn{display:none!important}
html.guest .guest-tag{display:inline-block}
.guest-tag{display:none;margin:0 auto 10px;padding:6px 14px;border-radius:99px;background:rgba(126,232,255,.12);border:1px solid rgba(126,232,255,.5);color:var(--ice);font-size:var(--t2)}
