:root{--display: "Zodiak", "Times New Roman", serif;--serif: "Sentient", Georgia, serif;--sans: "Switzer", -apple-system, system-ui, sans-serif;--ink: #fff6f4;--rose: #ff9ec4;--paper: #ddcdb8;--gold: var(--paper);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#05030c;font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;touch-action:none}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.hidden{display:none!important}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-start;padding:6vh clamp(28px,9vw,130px);overflow-y:auto;background:linear-gradient(100deg,#06030cf0,#080410db 42%,#0a051480);z-index:40;transition:opacity 1.2s ease}.intro-inner{max-width:480px;text-align:left;animation:rise 1.4s cubic-bezier(.2,.8,.2,1) both}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.eyebrow{font-family:var(--serif);font-size:16px;font-style:italic;color:var(--gold);opacity:.75;margin:0 0 6px}h1{font-family:var(--display);font-weight:400;font-size:clamp(52px,8vw,92px);line-height:1.02;margin:0 0 24px;letter-spacing:-.015em;color:#fff4ee}.sub{font-family:var(--serif);font-size:clamp(17px,1.9vw,20px);line-height:1.75;color:#fff6f4cc;margin:0 0 16px;max-width:34em}.sub.last{color:#fff6f48c;margin-bottom:34px}button{margin:0;padding:14px 30px;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.02em;color:#1c0d17;background:#f2ded2;border:0;border-radius:2px;cursor:pointer;transition:background .2s ease,color .2s ease}button:hover{background:#fff}button.ghost{background:transparent;color:#fff6f4b8;border:1px solid rgba(255,246,244,.24);padding:13px 26px}button.ghost:hover{background:transparent;color:#fff4ee;border-color:#fff6f480}#resumeInfo{margin:12px 0 0;font-size:12px;color:#fff6f461}.controls{margin-top:40px;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:#fff6f457}.controls b{color:#ddcdb8d9;font-weight:600}.touch-only{display:none;width:100%}@media (hover: none) and (pointer: coarse){.touch-only{display:block}.overlay{align-items:flex-start;background:linear-gradient(180deg,#06030cf2 40%,#0a0514b8)}}#hud{position:fixed;top:22px;left:0;right:0;text-align:center;z-index:10;pointer-events:none;text-shadow:0 2px 18px rgba(0,0,0,.8)}#playerName{font-family:var(--serif);font-size:14px;font-style:italic;color:var(--rose);opacity:.6;margin-bottom:2px}#worldName{font-family:var(--display);font-size:25px;letter-spacing:.02em;opacity:.92}#progress{margin-top:5px;font-size:12px;letter-spacing:.04em;opacity:.5}#hint{margin-top:12px;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--gold);opacity:0;transition:opacity .8s ease}#hint.show{opacity:.95}#card{position:fixed;left:50%;bottom:130px;transform:translate(-50%,20px);width:min(660px,88vw);padding:30px 38px;background:#09040fe0;border:1px solid rgba(255,246,244,.12);border-radius:3px;box-shadow:0 18px 50px #00000080;text-align:center;z-index:20;opacity:0;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1);pointer-events:none}#card.show{opacity:1;transform:translate(-50%)}#cardText{font-family:var(--serif);font-size:clamp(20px,3vw,27px);line-height:1.65;font-style:italic}button.ghost{background:transparent;color:var(--gold);border:1px solid rgba(221,205,184,.4);box-shadow:none;font-size:12px;padding:11px 26px}button.ghost:hover{border-color:#ddcdb8b3}#resumeBox{margin-top:14px}#resumeInfo{margin:10px 0 0;font-size:12px;letter-spacing:.1em;opacity:.45}.finale-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}#photoView{position:fixed;top:0;right:0;bottom:0;left:0;z-index:32;display:flex;align-items:center;justify-content:center;padding:5vh 24px;background:#06030bf0;opacity:0;transition:opacity .6s ease;cursor:pointer}#photoView.on{opacity:1}.photo-inner{text-align:center;max-width:min(760px,92vw);animation:rise .9s cubic-bezier(.2,.8,.2,1) both}.photo-frame{position:relative;display:inline-block;padding:14px;background:#fdf8f2;border-radius:4px;box-shadow:0 24px 64px #0009;transform:rotate(-1.2deg);max-width:100%}.photo-frame img{display:block;max-width:100%;max-height:58vh;border-radius:2px}.photo-frame img[hidden]{display:none}#photoEmpty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:min(560px,74vw);height:min(370px,49vw);background:linear-gradient(160deg,#2b1830,#150c1e);border-radius:2px}#photoEmpty .ph-heart{font-size:52px;opacity:.8}#photoEmpty .ph-text{font-family:var(--serif);font-style:italic;font-size:17px;opacity:.5}#photoCaption{margin:26px auto 0;max-width:620px;font-family:var(--serif);font-style:italic;font-size:clamp(19px,3vw,26px);line-height:1.6;color:var(--ink)}.photo-close{margin-top:22px;font-size:12px;opacity:.35}#carnetBtn{position:fixed;top:20px;right:20px;z-index:16;margin:0;padding:8px 16px;font-size:12px;letter-spacing:.02em;border-radius:3px;background:#08040eb3;border:1px solid rgba(255,246,244,.16);color:#fff6f4bf}#carnetBtn:hover{transform:none;border-color:#fff6f466;color:var(--ink)}#journalHead{font-size:13px;letter-spacing:.02em;opacity:.45;margin:-18px 0 30px}.carnet-planet{margin:0 0 26px;break-inside:avoid}.carnet-planet h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:21px;margin:0 0 4px;color:var(--ink)}.carnet-state{font-size:12px;letter-spacing:.02em;opacity:.45;margin:0 0 10px}.carnet-state .ok{color:var(--rose);opacity:1}.carnet-photo{display:block;width:100%;max-width:240px;aspect-ratio:4 / 3;margin:2px 0 12px;padding:0;border-radius:10px;border:2px solid rgba(255,200,220,.35);background-size:cover;background-position:center;box-shadow:0 10px 26px #00000073;cursor:pointer;transition:transform .2s ease,border-color .2s ease}.carnet-photo:hover{transform:scale(1.03);border-color:#ff9ec4b3;box-shadow:0 10px 26px #00000073}.carnet-planet p.mot{font-family:var(--serif);font-size:17px;line-height:1.65;margin:0 0 10px;color:#fff6f4d1}.carnet-planet p.mot:before{content:"· ";color:var(--rose);opacity:.7}.carnet-planet p.vide{font-family:var(--serif);font-size:16px;font-style:italic;margin:0 0 10px;color:#fff6f457}#journalList{columns:2;column-gap:48px}@media (max-width: 780px){#journalList{columns:1}}#journal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#08040f;padding:6vh 8vw;overflow-y:auto}#journal h2{font-family:var(--display);font-weight:400;font-style:italic;font-size:34px;margin:0 0 26px;color:var(--rose)}.journal-close{margin-top:30px;font-size:12px;opacity:.35}#warp{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:flex;align-items:center;justify-content:center;background:#05030c;opacity:0;transition:opacity 1s ease;pointer-events:none}#warp.on{opacity:1;pointer-events:all}#warpText{font-family:var(--serif);font-style:italic;font-size:clamp(22px,4vw,38px);letter-spacing:.06em;text-align:center;padding:0 8vw;opacity:.9}#finale{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;display:flex;align-items:center;justify-content:center;text-align:center;padding:6vh 24px;overflow-y:auto;background:linear-gradient(180deg,#1e0614f0,#06030cf7 70%);opacity:0;transition:opacity 2.5s ease}#finale.on{opacity:1}.finale-inner{max-width:640px}#finale h2{font-family:var(--display);font-weight:400;font-size:clamp(34px,6vw,54px);margin:14px 0 26px;color:#fff}#finaleLetter{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2.6vw,23px);line-height:1.9;opacity:.92;white-space:pre-line}.signature{margin-top:30px;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--gold);opacity:.8}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;background:radial-gradient(ellipse at 50% 48%,transparent 52%,rgba(6,3,12,.55) 100%)}#prompt{position:fixed;left:50%;z-index:14;padding:12px 26px;border-radius:3px;background:#08040eb8;border:1px solid rgba(255,246,244,.12);font-size:13px;letter-spacing:.06em;color:var(--ink);text-align:center;max-width:min(560px,88vw);text-wrap:balance;text-shadow:0 2px 12px rgba(0,0,0,.7);box-shadow:0 8px 24px #0006;pointer-events:none;top:50%;transform:translate(-50%,-50%) scale(1);transition:top .9s cubic-bezier(.4,0,.2,1),transform .9s cubic-bezier(.4,0,.2,1),opacity .5s ease,font-size .9s ease,padding .9s ease}#prompt.docked{top:calc(100% - 74px);transform:translate(-50%,-50%) scale(.94);opacity:.82;animation:none}#prompt.action{pointer-events:auto;cursor:pointer;background:#180a14db;border-color:#ff9ec480;color:var(--rose)}#prompt.action.docked{opacity:1}#prompt b{color:var(--rose);font-weight:600;letter-spacing:.12em}#touchUI{position:fixed;top:0;right:0;bottom:0;left:0;z-index:18;pointer-events:none}#stickHint{position:absolute;left:82px;bottom:92px;width:104px;height:104px;margin:0 0 -52px -52px;border-radius:50%;border:1.5px dashed rgba(255,220,235,.22);display:grid;place-items:center;animation:hintBreathe 3.4s ease-in-out infinite}#stickHint span{width:34px;height:34px;border-radius:50%;background:#ffd6e838}@keyframes hintBreathe{0%,to{opacity:.5}50%{opacity:.85}}#stick{position:absolute;width:116px;height:116px;margin:-58px 0 0 -58px;border-radius:50%;border:1.5px solid rgba(255,246,244,.28);background:#0c06124d;opacity:0;transition:opacity .2s ease}#stick.on{opacity:1}#stickKnob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#ffd6e88c;box-shadow:0 4px 18px #00000073}.tbtn{position:absolute;right:26px;margin:0;padding:0;width:96px;height:96px;border-radius:50%;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.01em;color:#1c0d17;background:#f2ded2;border:0;box-shadow:0 6px 18px #00000073;pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,filter .12s ease}#btnMain{bottom:34px}#btnAction{bottom:42px;right:138px;width:82px;height:82px;font-size:11px;background:#e6d8c4}#btnAction.solo{right:26px;width:96px;height:96px}.tbtn:active,.tbtn.pressed{transform:scale(.92);filter:brightness(1.12)}#journal,#finale,#photoView{touch-action:pan-y;-webkit-overflow-scrolling:touch}@media (hover: none) and (pointer: coarse),(max-width: 620px){#hud{top:14px;padding:0 14px}#playerName{font-size:10px;letter-spacing:.36em}#worldName{font-size:21px}#progress{font-size:11px;letter-spacing:.18em}#hint{font-size:15px;line-height:1.4}#carnetBtn{top:12px;right:12px;padding:7px 14px;font-size:10px}#prompt{font-size:12px;padding:10px 18px;max-width:calc(100vw - 40px)}#prompt.docked{top:auto;bottom:152px;transform:translate(-50%) scale(.96);max-width:calc(100vw - 32px)}#card{bottom:232px;padding:18px 20px}#cardText{font-size:18px}}#lockHint{position:fixed;bottom:22px;left:0;right:0;text-align:center;font-size:12px;opacity:.3;z-index:12;pointer-events:none}
