:root{color-scheme:dark;--night:#180d16;--night2:#21111d;--panel:#2b1724;--panel2:#371d2d;--ink:#fff3f7;--muted:#d2bac6;--dim:#a38796;--rose:#ee5d9d;--rose2:#ffd1e4;--gold:#ff9fc7;--line:#f4a4c72b;--green:#a5d5bd;--red:#ef9aa9;--serif:Georgia,"Times New Roman",serif;--sans:"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 47% -20%,#382a49 0,transparent 48%),radial-gradient(ellipse at 94% 70%,#2a1d35 0,transparent 34%),var(--night);color:var(--ink);font-family:var(--sans);overflow-x:hidden}.sky-noise{position:fixed;inset:0;z-index:-3;opacity:.2;pointer-events:none;background-image:radial-gradient(#fff 1px,transparent 1.4px),radial-gradient(#f1c9d7 1px,transparent 1.4px);background-size:89px 93px,143px 151px;background-position:0 0,47px 66px}.ambient{position:fixed;z-index:-2;width:350px;height:350px;border-radius:50%;filter:blur(100px);opacity:.08;pointer-events:none}.ambient-one{background:#ca7299;top:28%;left:-200px}.ambient-two{background:#6c5a9b;right:-220px;top:59%}.topbar{height:76px;max-width:1260px;margin:auto;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font:17px var(--serif);letter-spacing:3px}.brand-mark{color:var(--gold);font-size:28px}.brand small{display:block;color:var(--rose);font:8px var(--sans);letter-spacing:2.5px;margin-top:3px}.top-actions{display:flex;align-items:center;gap:16px}.progress-label{font-size:9px;letter-spacing:1.7px;color:var(--muted)}.icon-button{border:1px solid #f2a3c749;border-radius:50%;width:35px;height:35px;background:#ffffff05;color:var(--gold);font-size:16px;cursor:pointer}.icon-button.active{background:#f2a3c725;box-shadow:0 0 15px #f2a3c726}main{max-width:1190px;margin:auto;min-height:calc(100vh - 130px)}.view{padding:48px 32px 74px;animation:arrive .55s ease both}.hidden{display:none!important}.hero-view{min-height:calc(100vh - 142px);padding-top:40px;padding-bottom:60px;display:grid;grid-template-columns:1fr .93fr;align-items:center;position:relative}.hero-copy{z-index:2;padding:0 0 28px 38px}.eyebrow{text-transform:uppercase;letter-spacing:2.4px;color:var(--rose);font-size:9px;font-weight:600;margin:0 0 16px;display:flex;align-items:center;gap:10px}.eyebrow-line{display:inline-block;width:25px;height:1px;background:var(--gold);opacity:.8}.hero-copy h1{font:500 clamp(76px,10vw,130px)/.82 var(--serif);letter-spacing:-5px;margin:0;color:var(--ink)}.hero-copy h1 em,.ending-view h2 em{color:var(--rose2);font-weight:400}.hero-subtitle{font:clamp(18px,2.3vw,23px)/1.55 var(--serif);color:#ded3e0;margin:30px 0 20px}.dedication{font-size:12px;color:var(--muted);letter-spacing:.4px}.dedication strong{color:var(--rose2);font-weight:500}.date-pill{display:inline-flex;align-items:center;gap:11px;padding:9px 14px;border:1px solid #f2a3c745;border-radius:99px;font-size:9px;letter-spacing:1.6px;color:var(--gold);margin-top:10px}.date-pill span{font-size:10px}.date-pill i{font-style:normal;color:#a7879c}.button{border:0;cursor:pointer;font:600 11px var(--sans);letter-spacing:.4px;border-radius:99px;padding:13px 19px;transition:transform .2s,filter .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);filter:brightness(1.08)}.button:focus-visible,.icon-button:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.button-primary{background:linear-gradient(115deg,#efbdce,#cc789a);color:#251320;box-shadow:0 10px 30px #dc91ae21}.button-primary span{margin-left:16px;font-size:14px}.hero-copy>.button{display:block;margin-top:23px}.quiet-note{font-size:9px;color:var(--dim);margin-top:15px}.hero-art{height:560px;position:relative;display:grid;place-items:center}.orbit{position:absolute;left:50%;top:49%;border:1px solid #f2a3c721;border-radius:50%;transform:translate(-50%,-50%) rotate(-17deg)}.orbit-one{width:400px;height:485px}.orbit-two{width:505px;height:570px;transform:translate(-50%,-50%) rotate(25deg);border-color:#db92ae17}.moon-disc{position:absolute;width:370px;height:370px;left:50%;top:44%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 47% 45%,#c0a3b426,transparent 52%);display:grid;place-items:center;color:#ffd1e4;font-size:290px;line-height:1;text-shadow:0 0 60px #f2a3c730}.moon-disc span{transform:translate(-3px,-4px)}.portrait-frame{position:absolute;top:49%;left:50%;transform:translate(-50%,-50%);width:205px;height:278px;border:1px solid #f2a3c766;border-radius:110px 110px 18px 18px;padding:7px;background:#171321;box-shadow:0 20px 70px #08061088;overflow:hidden}.portrait-frame img{width:100%;height:100%;object-fit:cover;border-radius:105px 105px 13px 13px}.portrait-label{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:7px;letter-spacing:1.6px;color:var(--gold);text-shadow:0 1px 7px #000}.hero-star{position:absolute;color:var(--gold);text-shadow:0 0 18px #f2a3c7a8;animation:twinkle 3.1s ease-in-out infinite}.star-a{top:17%;left:19%;font-size:19px}.star-b{top:25%;right:10%;font-size:25px;animation-delay:1s}.star-c{bottom:19%;left:18%;font-size:13px;animation-delay:1.8s}.floating-note{position:absolute;font:italic 15px/1.4 var(--serif);color:#d8c5d4;opacity:.83}.note-left{top:20%;left:0;transform:rotate(-9deg)}.note-right{bottom:19%;right:0;text-align:right;transform:rotate(8deg)}.scroll-mark{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;color:var(--dim);font-size:8px;letter-spacing:2px}.scroll-mark span{width:18px;height:1px;background:var(--gold)}footer{border-top:1px solid #ffffff12;text-align:center;padding:20px 12px 24px;color:var(--dim);font-size:8px;letter-spacing:1.4px}footer span{color:var(--rose2)}footer i{font-style:normal;color:var(--gold);padding:0 8px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.section-head h2,.secret-view h2{font:500 clamp(44px,6vw,70px)/.95 var(--serif);letter-spacing:-1.7px;margin:0 0 11px}.section-deck{color:var(--muted);font-size:12px;line-height:1.75;max-width:550px;margin:0}.map-counter{display:flex;align-items:center;gap:10px;padding:11px 15px 11px 13px;border:1px solid #f2a3c736;border-radius:15px;min-width:105px}.map-counter b{font:35px var(--serif);color:var(--gold)}.map-counter span{font-size:8px;line-height:1.4;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.chapter-strip{display:flex;gap:8px;margin:27px 0 13px;overflow-x:auto;scrollbar-width:none}.chapter-strip::-webkit-scrollbar{display:none}.chapter-tab{white-space:nowrap;border:1px solid var(--line);background:#ffffff04;color:var(--muted);border-radius:99px;padding:9px 13px;font-size:9px;letter-spacing:.8px;cursor:pointer}.chapter-tab.active{color:var(--gold);border-color:#f2a3c766;background:#f2a3c70c}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:14px}.map-panel{border:1px solid #d68ea51f;border-radius:20px;background:#171422d9;overflow:hidden;min-height:338px}.map-sky{min-height:290px;position:relative;padding:35px 27px 25px;overflow:hidden;background:radial-gradient(ellipse at 48% 54%,#44304d4a,transparent 58%)}.map-lines{position:absolute;inset:17% 0 auto;width:100%;height:150px;opacity:.42;pointer-events:none}.map-lines path{fill:none;stroke:#f2a3c77a;stroke-width:1.1;stroke-dasharray:3 7}.map-starfield{position:absolute;inset:20px 0 auto;text-align:center;font-size:10px;color:#fff;opacity:.3;white-space:nowrap;pointer-events:none}.stars-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(7,minmax(64px,1fr));gap:16px 8px;align-items:center;min-height:214px}.star-node{min-height:61px;border:1px solid #d987af54;border-radius:50%;width:58px;justify-self:center;background:#171322;color:var(--gold);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 25px #f2a3c70b;transition:.2s;position:relative}.star-node:hover:not(:disabled){transform:scale(1.08);box-shadow:0 0 24px #f2a3c733}.star-node strong{font-size:17px;font-weight:400}.star-node small{font-size:7px;letter-spacing:1px;color:var(--muted);margin-top:2px}.star-node.complete{background:#e79cbe;color:#241727;box-shadow:0 0 20px #f2a3c748}.star-node.complete small{color:#4f3b4c}.star-node.locked{opacity:.3;border-style:dashed;cursor:not-allowed}.star-node.current{box-shadow:0 0 0 5px #db92ae0c,0 0 26px #db92ae35;border-color:var(--rose)}.star-node:nth-child(7n + 2),.star-node:nth-child(7n + 5){transform:translateY(12px)}.star-node:nth-child(7n + 2):hover:not(:disabled),.star-node:nth-child(7n + 5):hover:not(:disabled){transform:translateY(12px) scale(1.08)}.map-caption{text-align:center;position:relative;z-index:1;color:#97889d;font:italic 13px var(--serif);margin-top:13px}.caption-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--rose);margin:0 6px 3px 0}.map-bottom{text-align:center;border-top:1px solid #ffffff0d;padding:11px;color:#a697a7;font-size:9px;letter-spacing:.6px}.map-bottom span{color:var(--gold);padding:0 8px}.guide-card{border:1px solid #d68ea522;border-radius:20px;background:linear-gradient(150deg,#221d2eea,#171422);padding:22px 21px;display:flex;flex-direction:column;align-items:flex-start}.guide-orbit{height:70px;width:70px;position:relative;margin:0 0 15px}.guide-orbit img{width:65px;height:65px}.guide-spark{position:absolute;right:0;top:0;color:var(--gold);font-size:12px}.guide-card>.eyebrow{font-size:8px;margin-bottom:8px}.guide-card h3{font:28px/.97 var(--serif);margin:0 0 11px}.guide-card h3 em{color:var(--rose2);font-weight:400}.guide-card>p:not(.eyebrow){color:var(--muted);font-size:10px;line-height:1.75;margin:0}.guide-stats{display:flex;gap:30px;border-top:1px solid var(--line);width:100%;padding-top:14px;margin-top:auto}.guide-stats div{display:flex;flex-direction:column;gap:3px}.guide-stats b{font:26px var(--serif);color:var(--gold)}.guide-stats small{font-size:7px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.text-button,.secret-link{border:0;background:none;color:var(--rose2);cursor:pointer;font-size:9px;padding:0}.secret-link{margin-top:14px;color:var(--gold);letter-spacing:.5px}.secret-link span{margin-left:6px}.text-button{margin-top:13px;color:#a994a8}.guide-whisper{font:italic 11px/1.5 var(--serif)!important;color:#a797a6!important;margin-top:14px!important}.map-foot{display:flex;align-items:center;gap:13px;margin:23px 4px 0;color:var(--muted);font-size:9px;letter-spacing:.4px}.map-foot img{width:39px;height:39px;border-radius:50%;border:1px solid #f2a3c752}.map-foot span{display:flex;flex-direction:column;gap:5px}.map-foot b{font:italic 15px var(--serif);color:#e4d5e0;font-weight:400}.game-view{max-width:870px;margin:0 auto}.back-button{border:0;padding:4px 0;background:none;color:var(--muted);font-size:10px;cursor:pointer;margin-bottom:29px}.back-button:hover{color:var(--rose2)}.back-button span{margin-left:4px}.game-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.game-heading h2{font:500 clamp(41px,6vw,63px)/.92 var(--serif);letter-spacing:-1.1px;margin:0}.game-heading .eyebrow{margin-bottom:11px}.token-chip{border:1px solid #f2a3c745;border-radius:12px;padding:9px 12px;min-width:133px;display:flex;flex-direction:column;gap:6px}.token-chip span{font-size:7px;letter-spacing:1.5px;color:var(--muted)}.token-chip b{font-size:9px;font-weight:500;color:var(--gold)}.game-intro{color:var(--muted);font-size:12px;line-height:1.7;max-width:670px;margin:16px 0 20px}.game-area{background:linear-gradient(145deg,#211c2cef,#191625f5);border:1px solid #d68ea527;border-radius:20px;padding:clamp(21px,4vw,34px);min-height:222px;box-shadow:0 16px 44px #0002}.game-area h3{font:27px/1.1 var(--serif);font-weight:400;margin:0 0 12px}.game-area p{font-size:11px;line-height:1.75;color:var(--muted)}.game-mark{color:var(--gold);font-size:22px;margin-bottom:12px}.game-copy{max-width:650px}.feedback{min-height:28px;padding:10px 2px 1px;color:var(--green);font-size:10px}.feedback.error{color:var(--red)}.game-controls{display:flex;justify-content:space-between;align-items:center;gap:15px}.button-quiet{background:#ffffff06;color:var(--rose2);border:1px solid #db92ae5c}.button-quiet span{margin-left:7px}.game-controls>span{font-size:9px;color:var(--dim)}.hint-box{margin-top:13px;padding:12px 15px;background:#f2a3c70a;border-left:2px solid var(--gold);color:#f2bfd5;border-radius:0 9px 9px 0;font-size:10px;line-height:1.7}.choice-list{display:grid;gap:9px;margin-top:18px}.choice-option,.order-option{width:100%;display:flex;align-items:center;gap:13px;text-align:left;background:#ffffff04;border:1px solid #ffffff20;color:var(--ink);border-radius:11px;padding:13px 14px;font-size:10px;cursor:pointer;transition:.18s}.choice-option:hover,.order-option:hover{border-color:#db92ae88;background:#db92ae0a}.choice-option .option-key{display:grid;place-items:center;flex:none;width:24px;height:24px;border:1px solid #f2a3c749;border-radius:50%;color:var(--gold);font:12px var(--serif)}.choice-option.wrong{border-color:var(--red);opacity:.7}.choice-option:disabled{cursor:default}.answer-form{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.answer-form input,.game-input{min-width:150px;flex:1;background:#110f1c;border:1px solid #8d778b74;border-radius:10px;padding:12px 13px;color:var(--ink);font:11px var(--sans)}.answer-form input::placeholder,.game-input::placeholder{color:#82798a}.answer-form input:focus,.game-input:focus{outline:none;border-color:var(--rose)}.inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.small-action{border:1px solid #db92ae54;background:#ffffff06;color:var(--rose2);border-radius:99px;padding:10px 14px;font-size:9px;cursor:pointer}.memory-stats{font-size:9px;color:var(--muted);margin:5px 0 14px}.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(48px,1fr));gap:9px;max-width:420px}.memory-card{height:67px;background:#151321;border:1px solid #80708b;border-radius:11px;color:var(--gold);font-size:21px;cursor:pointer}.memory-card.revealed,.memory-card.matched{background:#413048;border-color:var(--rose)}.memory-card.matched{border-color:var(--green);cursor:default}.memory-card:disabled{cursor:default}.sequence-grid{display:grid;grid-template-columns:repeat(4,minmax(60px,1fr));gap:9px;max-width:520px;margin-top:17px}.sequence-button{height:69px;background:#151321;border:1px solid #786b7e;border-radius:12px;color:var(--gold);font-size:23px;cursor:pointer;transition:.12s}.sequence-button small{display:block;margin-top:5px;color:var(--muted);font-size:8px}.sequence-button.lit{background:#f2a3c7;color:#251724;box-shadow:0 0 22px #f2a3c76b}.sequence-button.lit small{color:#4e3b49}.tile-grid{display:grid;grid-template-columns:repeat(3,65px);gap:7px;margin-top:16px}.light-tile{height:65px;border:1px solid #85718b;border-radius:11px;background:#13111f;color:var(--dim);font-size:19px;cursor:pointer}.light-tile.on{background:#b695cf;border-color:#ddc4ee;color:#211729;box-shadow:0 0 18px #c498e85a}.word-grid{display:grid;grid-template-columns:repeat(5,40px);gap:5px;margin:16px 0}.word-cell{width:40px;height:40px;border:1px solid #75697b;border-radius:8px;background:#151321;color:var(--cream);font:15px var(--serif);cursor:pointer}.word-cell.selected{background:#c981a0;border-color:var(--rose2);color:#201320}.word-cell.found{background:#86ad9a;border-color:var(--green);color:#122018}.maze{display:grid;grid-template-columns:repeat(5,42px);gap:4px;margin:16px 0}.maze-cell{width:42px;height:42px;border-radius:7px;background:#171422;display:grid;place-items:center;color:var(--gold);font-size:16px;border:1px solid #ffffff11}.maze-cell.wall{background:#342b3e}.maze-cell.player{background:#d88eaa;color:#261625}.maze-cell.goal{background:#f2a3c726;border-color:#f2a3c770}.chess-layout{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap}.chess-board{display:grid;grid-template-columns:repeat(8,minmax(32px,49px));border:2px solid #b79b89;border-radius:5px;overflow:hidden;box-shadow:0 9px 25px #0004}.chess-square{aspect-ratio:1/1;width:100%;border:0;display:grid;place-items:center;padding:0;cursor:pointer;font-size:clamp(20px,4vw,37px);line-height:1;color:#211825;text-shadow:0 1px 1px #fff7}.chess-square.light{background:#dcccb8}.chess-square.dark{background:#8d7181}.chess-square.selected{box-shadow:inset 0 0 0 4px #f2a3c7}.chess-square.legal{background-image:radial-gradient(#604e6380 22%,transparent 24%)}.chess-square.last{box-shadow:inset 0 0 0 3px #f2a3c770}.chess-info{flex:1;min-width:175px}.chess-status{font:19px var(--serif);color:var(--gold)}.chess-small{font-size:9px!important;line-height:1.7}.chess-reset{margin-top:9px}.coord{display:flex;font-size:7px;color:#eee;position:absolute}.stage-bottom{margin-top:14px;color:#95899a;font-size:9px}.rhythm-button{width:74px;height:74px;border-radius:50%;border:1px solid #f2a3c791;background:#f2a3c712;color:var(--gold);font-size:25px;cursor:pointer}.rhythm-button.ready{animation:pulse 1s infinite}.confession-card{position:relative;margin-top:26px;padding:30px clamp(23px,5vw,44px);border:1px solid #f2a3c73d;border-radius:18px;background:linear-gradient(145deg,#282033,#1a1725);animation:arrive .5s ease}.confession-seal{width:34px;height:34px;display:grid;place-items:center;border:1px solid #f2a3c766;color:var(--gold);border-radius:50%;font-size:17px;margin-bottom:15px}.confession-card .eyebrow{margin-bottom:9px}.confession-card h3{font:31px/1.1 var(--serif);font-weight:400;margin:0 0 11px}.confession-card>p:not(.eyebrow){max-width:680px;color:#ded1df;font:19px/1.65 var(--serif);margin:0}.confession-sign{font:italic 12px var(--serif);color:var(--rose2);margin:16px 0 19px}.secret-view{text-align:center;max-width:740px;margin:0 auto}.secret-moon{font-size:57px;color:var(--gold);text-shadow:0 0 40px #f2a3c75d}.secret-view>.eyebrow{justify-content:center;margin-top:8px}.secret-view h2{font-size:63px}.secret-view>.section-deck{margin:0 auto 27px}.secret-game{text-align:left}.ending-view{text-align:center;max-width:800px;margin:0 auto;padding-top:68px}.ending-glow{font-size:24px;color:var(--gold);text-shadow:0 0 25px #f2a3c766;margin-bottom:18px}.ending-view>.eyebrow{justify-content:center}.ending-view h2{font:500 clamp(51px,8vw,80px)/.97 var(--serif);margin:0}.ending-lead{max-width:500px;margin:17px auto 27px;font:18px/1.6 var(--serif);color:#d2c4d3}.ending-choices{display:grid;gap:9px;max-width:620px;margin:0 auto;text-align:left}.ending-choice{position:relative;display:grid;grid-template-columns:42px 1fr 24px;grid-template-rows:auto auto;align-items:center;gap:3px 13px;background:#ffffff05;color:var(--ink);border:1px solid #f2a3c732;border-radius:14px;padding:14px 16px;text-align:left;cursor:pointer;transition:.18s}.ending-choice:hover{border-color:#f2a3c78c;background:#f2a3c70c;transform:translateY(-1px)}.choice-icon{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border:1px solid #f2a3c754;border-radius:50%;color:var(--gold);font-size:16px}.ending-choice b{font:20px var(--serif);font-weight:400}.ending-choice small{font-size:9px;color:var(--muted)}.choice-arrow{grid-column:3;grid-row:1/3;color:var(--rose2);font-size:16px}.ending-letter{position:relative;margin:32px auto 0;text-align:left;max-width:680px;padding:35px 45px;border:1px solid #f2a3c745;border-radius:19px;background:linear-gradient(145deg,#272033,#191623);font:18px/1.8 var(--serif);color:#e6dce6}.letter-portrait{position:absolute;right:24px;top:20px;width:68px;height:68px;border-radius:50%;border:1px solid #f2a3c75e}.letter-seal{width:37px;height:37px;border:1px solid #f2a3c773;color:var(--gold);display:grid;place-items:center;border-radius:50%;margin:0 auto 17px;font-size:20px}.letter-greeting{color:var(--rose2);font-size:23px}.letter-question{text-align:center;color:var(--gold);font-size:23px;margin-top:24px}.letter-signature{text-align:right;color:var(--rose2)}.ending-actions{display:flex;align-items:center;justify-content:center;gap:20px;margin:18px 0}.ending-actions .text-button{margin:0}.ending-readonly{color:var(--dim);font-size:9px;margin-top:10px}@keyframes arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes twinkle{0%,100%{opacity:.52;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 #f2a3c700}50%{box-shadow:0 0 0 8px #f2a3c715}}@media(max-width:900px){.hero-copy{padding-left:10px}.hero-art{height:490px}.moon-disc{width:310px;height:310px;font-size:245px}.portrait-frame{width:176px;height:242px}.orbit-one{width:340px;height:420px}.orbit-two{width:425px;height:490px}.note-left{left:-5px}.note-right{right:-4px}.stars-grid{grid-template-columns:repeat(7,minmax(48px,1fr));gap:13px 4px}.star-node{width:49px;min-height:52px}.map-layout{grid-template-columns:minmax(0,1fr) 218px}.guide-card{padding:19px 17px}}@media(max-width:680px){.topbar{height:66px;padding:0 17px}.brand{font-size:15px}.progress-label{font-size:8px}.view{padding:35px 18px 56px}.hero-view{grid-template-columns:1fr;min-height:auto;padding-top:35px;padding-bottom:56px}.hero-copy{padding:20px 4px 0;text-align:center}.hero-copy .eyebrow{justify-content:center}.hero-copy h1{font-size:clamp(72px,17vw,110px)}.hero-subtitle{margin-top:20px}.hero-art{grid-row:1;height:380px;margin-bottom:-13px}.moon-disc{width:250px;height:250px;font-size:195px}.portrait-frame{width:146px;height:202px}.orbit-one{width:272px;height:330px}.orbit-two{width:340px;height:380px}.hero-star.star-a{left:15%;top:17%}.hero-star.star-b{right:8%;top:20%}.hero-star.star-c{left:14%;bottom:17%}.floating-note{font-size:12px}.note-left{top:17%;left:1%}.note-right{bottom:17%;right:0}.scroll-mark{display:none}.desktop-only{display:none}.section-head{align-items:flex-start}.section-head h2{font-size:48px}.section-deck{font-size:11px}.map-counter{min-width:81px;padding:8px}.map-counter b{font-size:29px}.map-counter span{font-size:7px}.map-layout{grid-template-columns:1fr}.map-panel{min-height:300px}.map-sky{padding:28px 11px 17px;min-height:260px}.stars-grid{grid-template-columns:repeat(7,minmax(36px,1fr));gap:15px 1px;min-height:190px}.star-node{width:39px;min-height:43px}.star-node strong{font-size:14px}.star-node small{font-size:6px}.star-node:nth-child(7n + 2),.star-node:nth-child(7n + 5){transform:translateY(8px)}.star-node:nth-child(7n + 2):hover:not(:disabled),.star-node:nth-child(7n + 5):hover:not(:disabled){transform:translateY(8px) scale(1.05)}.map-lines{top:20%;height:130px}.map-caption{font-size:11px}.guide-card{display:grid;grid-template-columns:70px 1fr;column-gap:13px;align-items:center}.guide-orbit{grid-row:1/4;margin:0}.guide-card>.eyebrow{grid-column:2;margin:0 0 4px}.guide-card h3{grid-column:2;font-size:24px;margin:0}.guide-card>p:not(.eyebrow){grid-column:2;margin:3px 0 8px}.guide-stats{grid-column:1/3;margin-top:14px}.guide-whisper{grid-column:1/3}.guide-card .text-button,.guide-card .secret-link{grid-column:1/3}.map-foot{margin-top:17px}.game-heading{align-items:flex-start}.game-heading h2{font-size:43px}.token-chip{min-width:104px;padding:8px}.token-chip b{font-size:8px}.game-intro{font-size:11px}.game-area{padding:21px 17px;min-height:205px}.game-controls{align-items:flex-start;flex-direction:column}.confession-card{padding:24px 20px}.confession-card h3{font-size:27px}.confession-card>p:not(.eyebrow){font-size:17px}.secret-view h2{font-size:52px}.ending-view{padding-top:42px}.ending-letter{padding:28px 24px}.letter-portrait{width:50px;height:50px;right:17px;top:17px}.ending-actions{flex-direction:column;gap:14px}.chess-board{grid-template-columns:repeat(8,minmax(30px,1fr));width:min(100%,336px)}.chess-layout{gap:14px}.chess-info{min-width:100%}.chess-status{font-size:17px}}@media(max-width:390px){.topbar{padding:0 12px}.progress-label{letter-spacing:.9px}.view{padding-left:13px;padding-right:13px}.hero-art{height:345px}.map-counter{gap:6px;min-width:71px}.map-counter b{font-size:26px}.stars-grid{gap:13px 0}.star-node{width:34px;min-height:39px}.star-node small{font-size:5px}.tile-grid{grid-template-columns:repeat(3,57px)}.light-tile{height:57px}.maze{grid-template-columns:repeat(5,36px)}.maze-cell{width:36px;height:36px}.word-grid{grid-template-columns:repeat(5,35px)}.word-cell{width:35px;height:35px}.ending-choice{padding:12px;grid-template-columns:36px 1fr 16px}.choice-icon{width:33px;height:33px}.ending-choice b{font-size:18px}.memory-card{height:58px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}

.guide-orbit{border:0;padding:0;background:transparent;cursor:pointer}

@media(max-width:520px){.progress-label{display:none}.top-actions{gap:8px}.icon-button{width:32px;height:32px}}
.confession-pair{display:flex;align-items:center;gap:9px;margin:-4px 0 17px;padding:7px 10px 7px 7px;width:max-content;border:1px solid #f2a3c735;border-radius:999px;background:#110f1d88}.confession-pair img{width:43px;height:43px;object-fit:cover;border-radius:50%;border:1px solid #f2a3c775}.confession-pair span{color:var(--rose2);font-size:16px;text-shadow:0 0 13px #db92ae80}

/* Printable 4x6 portrait card shown inside the ending letter. */
.letter-photo-4x6{position:relative;width:min(240px,100%);aspect-ratio:2/3;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;margin:8px auto 26px;padding:16px 14px 14px;border:1px solid #f2a3c7a8;border-radius:13px;background:radial-gradient(ellipse at 50% 37%,#87527180,transparent 58%),radial-gradient(circle at 15% 20%,#f8d5e566 0 1px,transparent 2px),radial-gradient(circle at 85% 14%,#f8d5e588 0 1.5px,transparent 2.5px),linear-gradient(165deg,#30213a,#11101c 78%);box-shadow:0 15px 42px #09071180;text-align:center}
.letter-photo-heading,.letter-photo-4x6 figcaption{position:relative;z-index:1;color:#f3aaca;font:10px/1.5 var(--sans);letter-spacing:2px}
.letter-photo-heading small,.letter-photo-4x6 figcaption small{display:block;color:#d7bdce;font:7px/1.7 var(--sans);letter-spacing:1.5px;margin-top:3px}
.letter-photo-pair{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center;flex:1;min-height:0;margin:15px 0}
.letter-photo-pair img{display:block;width:100%;height:100%;max-height:220px;min-height:0;object-fit:cover;border:1px solid #f2a3c775;border-radius:90px 90px 24px 24px;background:#201827;box-shadow:0 8px 24px #07060b80}
.letter-photo-pair img:first-child{object-position:center 42%}
.letter-photo-pair img:last-child{border-radius:50% 50% 23px 23px;object-position:center}
.letter-photo-heart{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);width:31px;height:31px;display:grid;place-items:center;border:1px solid #f2a3c7;background:#211628;color:#f0b7cb;border-radius:50%;font-size:17px;box-shadow:0 0 18px #db92ae6e}
@media(max-width:680px){.letter-photo-4x6{width:min(220px,100%)}}
.expert-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));width:min(100%,400px);aspect-ratio:1/1;margin:16px 0 12px;border:2px solid #b79b89;border-radius:5px;overflow:hidden;box-shadow:0 9px 25px #0004}
.expert-square{position:relative;display:grid;place-items:center;min-width:0;aspect-ratio:1/1;border:0;padding:0;cursor:pointer;font:clamp(18px,4.5vw,34px)/1 var(--serif);color:#251925;text-shadow:0 1px 1px #fff7}
.expert-square.light{background:#dcccb8}.expert-square.dark{background:#8d7181}.expert-square:hover{filter:brightness(1.13)}
.expert-square.tour-visited{background:#6f9c8a;color:#fff}.expert-square.tour-current{background:#f2a3c7;color:#211824;box-shadow:inset 0 0 0 3px #ffe5f0}.expert-square.queen-placed{background:#e9bad0;color:#211824;box-shadow:inset 0 0 0 3px #ffe5f0}
.sudoku-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:min(100%,300px);aspect-ratio:1/1;margin:17px 0 12px;border:2px solid #b79b89;border-radius:5px;overflow:hidden}
.sudoku-cell{font:clamp(16px,4vw,25px)/1 var(--serif)}.sudoku-cell.sudoku-given{color:#fce8ef;background:#292237;font-weight:700}.sudoku-cell.sudoku-selected{box-shadow:inset 0 0 0 3px #f2a3c7;background:#503950}.sudoku-cell.box-right{border-right:3px solid #b79b89}.sudoku-cell.box-bottom{border-bottom:3px solid #b79b89}
.sudoku-keypad{display:flex;flex-wrap:wrap;gap:7px;max-width:360px}.sudoku-keypad .small-action{min-width:38px;min-height:38px}

.round-gift{max-width:420px;margin:26px auto 23px;padding:20px 20px 17px;border:1px solid #f2a3c755;border-radius:17px;background:radial-gradient(ellipse at 50% 0,#db92ae18,transparent 66%),linear-gradient(145deg,#211c2b,#171522);box-shadow:0 12px 35px #08071150;text-align:center;animation:arrive .65s ease both}
.round-gift>.eyebrow{justify-content:center;margin-bottom:12px;font-size:8px;letter-spacing:2px}
.round-gift-image{display:block;width:min(100%,320px);height:auto;aspect-ratio:16/11;object-fit:cover;margin:0 auto 12px;border:1px solid #f2a3c769;border-radius:12px;box-shadow:0 6px 24px #08071170}
.round-gift h4{margin:4px 0 6px;color:var(--gold);font:400 24px/1.2 var(--serif)}
.round-gift>p:last-child{margin:0 auto;max-width:340px;color:#d5c7d6;font:14px/1.6 var(--serif)}
@media(max-width:520px){.round-gift{padding:16px 14px}.round-gift h4{font-size:22px}.round-gift>p:last-child{font-size:13px}}

.gallery-open{width:100%;margin-top:8px;justify-content:center}
.gallery-view{max-width:1000px;margin:0 auto}.gallery-heading{margin:6px 0 22px}.gallery-heading h2{margin:0;font:500 clamp(48px,7vw,70px)/1 var(--serif)}
.personalize-panel{display:grid;grid-template-columns:minmax(190px,.8fr) 1.2fr;gap:24px;align-items:center;margin:0 0 25px;padding:20px 22px;border:1px solid #f2a3c735;border-radius:17px;background:linear-gradient(145deg,#241f30,#191623)}.personalize-panel h3{font:400 26px var(--serif);margin:0}.personalize-panel .eyebrow{margin-bottom:8px}.personalize-note{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.personalize-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.upload-choice,.music-choice,.volume-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:8px 11px;border:1px solid #f2a3c735;border-radius:10px;background:#110f1d80;color:#e9dce9;font-size:11px}.upload-choice{cursor:pointer}.upload-choice input{width:105px;min-width:0;color:var(--muted);font-size:9px}.upload-choice input::file-selector-button{border:0;border-radius:6px;padding:5px 7px;background:#f2a3c71c;color:var(--gold);font-size:9px;cursor:pointer}.music-choice{grid-column:1/3}.music-choice select{max-width:65%;border:1px solid #f2a3c740;border-radius:7px;padding:7px;background:#201b2a;color:var(--ink);font:11px var(--sans)}.volume-choice input{width:110px;accent-color:var(--rose)}.personalize-controls>.small-action{width:max-content;min-height:36px}
.gallery-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(265px,.8fr);gap:18px;align-items:start}.gallery-grid{display:grid;gap:8px;max-height:650px;overflow:auto;padding:1px 5px 1px 1px}.gallery-item{display:grid;grid-template-columns:52px minmax(0,1fr) 17px;align-items:center;gap:11px;min-height:67px;padding:8px 11px;border:1px solid #f2a3c730;border-radius:12px;background:#ffffff06;color:var(--ink);text-align:left;cursor:pointer;transition:transform .18s,border-color .18s,background .18s}.gallery-item:hover,.gallery-item:focus-visible{transform:translateY(-1px);border-color:#f2a3c780;background:#f2a3c70d;outline:none}.gallery-item>img,.gallery-icon{width:51px;height:49px;display:grid;place-items:center;object-fit:cover;border-radius:9px;color:var(--gold);font:22px var(--serif);background:linear-gradient(145deg,#453147,#1a1724)}.gallery-item-copy{display:grid;gap:4px;min-width:0}.gallery-item-copy b{overflow:hidden;text-overflow:ellipsis;font:16px var(--serif);font-weight:400}.gallery-item-copy small{color:var(--muted);font-size:9px;letter-spacing:.5px}.gallery-arrow{color:var(--rose2)}.gallery-empty{padding:21px;border:1px dashed #f2a3c73b;border-radius:14px;color:var(--muted);font:16px/1.6 var(--serif)}.gallery-detail{position:sticky;top:18px;min-height:280px;padding:20px;border:1px solid #f2a3c745;border-radius:16px;background:radial-gradient(ellipse at 50% 0,#db92ae19,transparent 65%),linear-gradient(150deg,#252033,#171521);text-align:center}.gallery-detail>img{display:block;width:min(100%,310px);max-height:190px;object-fit:cover;margin:0 auto 16px;border:1px solid #f2a3c770;border-radius:11px;box-shadow:0 8px 28px #09071165}.gallery-detail>.eyebrow{justify-content:center;margin-bottom:7px}.gallery-detail h3{margin:0 0 10px;font:400 27px/1.2 var(--serif);color:var(--gold)}.gallery-detail>p:last-child{white-space:pre-line;color:#e3d9e5;font:16px/1.7 var(--serif)}.gallery-detail-placeholder{display:grid;place-content:center;min-height:238px;color:var(--gold);font-size:35px}.gallery-detail-placeholder p{max-width:180px;color:var(--muted);font:15px/1.6 var(--serif)}
.guided-choice{border-color:#f2a3c7a8!important;background:#f2a3c712!important;box-shadow:inset 3px 0 var(--gold)}.ending-message{white-space:pre-line}
.cinematic{position:fixed;inset:0;z-index:50;display:grid;place-items:center;overflow:auto;padding:24px;animation:sceneFade .4s ease both}.cinematic-backdrop{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 40%,#54344cbb,#100e1bed 72%);backdrop-filter:blur(12px)}.cinematic-card{position:relative;width:min(100%,660px);padding:25px clamp(21px,5vw,48px) 30px;border:1px solid #f2a3c766;border-radius:22px;background:linear-gradient(155deg,#282134f5,#171522f7);box-shadow:0 35px 110px #05040bba;text-align:center;animation:sceneRise .55s cubic-bezier(.2,.75,.2,1) both}.cinematic-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--gold);font-size:8px;letter-spacing:2px}.scene-skip{border:0;background:transparent;color:var(--rose2);font:11px var(--sans);cursor:pointer}.cinematic-card h2{margin:10px 0 6px;font:400 clamp(39px,7vw,58px)/1.04 var(--serif);color:var(--ink)}.scene-portraits{display:flex;align-items:center;justify-content:center;gap:19px;margin:12px 0 17px}.scene-portraits figure{margin:0;opacity:.55;transform:scale(.94);transition:opacity .3s,transform .3s}.scene-portraits figure.speaking{opacity:1;transform:scale(1.03)}.scene-portraits img{display:block;width:clamp(87px,21vw,130px);height:clamp(87px,21vw,130px);object-fit:cover;border:1px solid #f2a3c772;border-radius:50%;box-shadow:0 0 30px #db92ae24}.scene-portraits figcaption{margin-top:7px;color:var(--rose2);font-size:8px;letter-spacing:2px}.scene-heart{color:var(--rose2);font-size:21px;text-shadow:0 0 18px #db92ae98;animation:heartBeat 1.7s ease-in-out infinite}.scene-speaker{margin:14px 0 6px;color:var(--gold);font-size:9px;letter-spacing:2.3px}.scene-line{min-height:82px;margin:0 auto;max-width:500px;color:#eee4eb;font:clamp(20px,4vw,25px)/1.55 var(--serif)}.scene-progress{margin:13px 0;color:var(--dim);font-size:9px;letter-spacing:2px}.scene-controls{display:flex;justify-content:center;gap:10px;margin-top:16px}.scene-controls .button{min-width:145px}.scene-controls .button:disabled{opacity:.45;cursor:default}@keyframes sceneFade{from{opacity:0}to{opacity:1}}@keyframes sceneRise{from{opacity:0;transform:translateY(17px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes heartBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
@media(max-width:760px){.personalize-panel{grid-template-columns:1fr;gap:14px}.gallery-layout{grid-template-columns:1fr}.gallery-detail{position:static;grid-row:1;min-height:230px}.gallery-detail-placeholder{min-height:185px}.gallery-grid{max-height:none}.personalize-controls{grid-template-columns:1fr}.music-choice{grid-column:auto}}
@media(max-width:480px){.cinematic{padding:12px}.cinematic-card{padding:20px 16px 22px;border-radius:17px}.scene-line{min-height:99px}.scene-portraits{gap:11px}.scene-controls{flex-direction:column-reverse}.scene-controls .button{width:100%}.personalize-panel{padding:16px}.upload-choice input{width:124px}.gallery-detail{padding:17px}}
@media(prefers-reduced-motion:reduce){.cinematic,.cinematic-card,.scene-heart,.scene-portraits figure{animation:none;transition:none}}

/* Romantic pink theme */
:root{--pink:#ee5d9d;--rose:var(--pink);--rose2:#ffd1e4;--gold:#ff9fc7;--night:#180d16;--night2:#21111d;--panel:#2b1724;--panel2:#371d2d;--line:#f4a4c72b}
body{background:radial-gradient(ellipse at 46% -18%,#5b2342 0,transparent 49%),radial-gradient(ellipse at 94% 70%,#482034 0,transparent 36%),var(--night)}
.ambient-one,.ambient-two{background:#ed5a9d}
.button-primary{background:linear-gradient(115deg,#ff9fc7,#e64e91);color:#fff8fb;box-shadow:0 10px 32px #e64e9140}
.icon-button.active,.chapter-tab.active{background:#ee5d9d25;border-color:#ee5d9d99;box-shadow:0 0 17px #ee5d9d30}
.map-panel,.guide-card,.game-area,.confession-card,.ending-letter,.personalize-panel,.gallery-detail,.cinematic-card,.round-gift{border-color:#ee5d9d48}
.map-panel{background:#21131fdf}
.map-sky{background:radial-gradient(ellipse at 48% 54%,#b6427840,transparent 62%)}
.guide-card,.game-area,.confession-card,.ending-letter,.personalize-panel{background:linear-gradient(145deg,#321b2aee,#21131f)}
.cinematic-card{background:linear-gradient(155deg,#382031f5,#21131ff7)}
.gallery-detail,.round-gift{background:radial-gradient(ellipse at 50% 0,#ee5d9d24,transparent 67%),linear-gradient(145deg,#321b2a,#21131f)}
.star-node{border-color:#ee5d9d70;box-shadow:0 0 24px #ee5d9d16}
.star-node.complete,.sequence-button.lit,.light-tile.on{background:#ee5d9d;color:#27121e;border-color:#ffb2d0;box-shadow:0 0 22px #ee5d9d61}
.memory-card.revealed,.memory-card.matched{background:#53263f;border-color:#ee5d9d}
.ending-choice:hover,.gallery-item:hover,.gallery-item:focus-visible{border-color:#ff9fc7;background:#ee5d9d18}
.letter-seal,.confession-seal{background:#ee5d9d;color:#fff5f9}

.skip-button{opacity:.85}
.skip-button.hidden{display:none}
.save-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);opacity:0;pointer-events:none;z-index:60;padding:10px 18px;border:1px solid #f2a3c75e;border-radius:99px;background:#241626ee;color:var(--rose2);font-size:11px;letter-spacing:.8px;transition:opacity .35s ease,transform .35s ease}
.save-toast.show{opacity:1;transform:translate(-50%,0)}
.letter-ps{margin-top:22px;padding-top:18px;border-top:1px solid #f2a3c72b;font-style:italic;color:var(--rose2);white-space:pre-line}
.letter-ps.hidden{display:none}
@media(max-width:680px){.skip-button{width:100%}}
@media(max-width:680px){.hero-copy>.button{margin-left:auto;margin-right:auto}}
#endingMessage{white-space:pre-line}

.memory-photo{margin:6px auto 22px;max-width:380px;padding:10px 10px 12px;background:#fff6f9;border-radius:6px;box-shadow:0 18px 40px #0000005c,0 0 0 1px #ffffff22;transform:rotate(-1.4deg);animation:memoryIn .7s ease both}
.memory-photo.hidden{display:none}
.memory-photo img{display:block;width:100%;max-height:440px;object-fit:cover;object-position:center 30%;border-radius:3px;background:#2b1724}
.memory-photo figcaption{margin-top:10px;text-align:center;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:14px;color:#6b3a52}
.memory-photo figcaption.hidden{display:none}
@keyframes memoryIn{from{opacity:0;transform:translateY(14px) rotate(-3deg) scale(.96)}to{opacity:1;transform:translateY(0) rotate(-1.4deg) scale(1)}}
@media(prefers-reduced-motion:reduce){.memory-photo{animation:none}}
@media(max-width:680px){.memory-photo{max-width:100%}}

.memory-photo img{max-height:360px}
@media(max-width:680px){.memory-photo img{max-height:320px}}
.save-toast{bottom:auto;top:74px;transform:translate(-50%,-12px)}
.save-toast.show{transform:translate(-50%,0)}
.gallery-detail>img.is-memory{width:min(100%,300px);max-height:340px;object-position:center 30%;background:#fff6f9;padding:7px;border-radius:5px;border:0;box-shadow:0 14px 34px #0000006b}

.dodge-zone{position:relative;height:130px;margin-top:10px;touch-action:manipulation}
.dodge-option{position:absolute;left:62%;top:50%;font-size:9px;line-height:1;padding:5px 10px;border:1px solid #ffffff1c;background:transparent;color:#d2bac8aa;border-radius:99px;cursor:pointer;white-space:nowrap;transition:left .14s ease,top .14s ease;-webkit-tap-highlight-color:transparent;user-select:none}
.dodge-option:disabled{opacity:.4}
.choice-option.love-yes:hover{border-color:#ff9fc7;background:#ee5d9d18}
@media(prefers-reduced-motion:reduce){.dodge-option{transition:none}}

.gallery-detail>img.is-gift{width:min(100%,420px);height:auto;max-height:none;aspect-ratio:16/11;object-fit:contain;background:#171522}
.round-gift-image{width:min(100%,360px);object-fit:contain}

/* ---- Gift picture size (the four chapter gifts, incl. */
:root{--gift-image-width:290px}
@media(max-width:680px){:root{--gift-image-width:240px}}
.round-gift .round-gift-image{width:min(100%,var(--gift-image-width));height:auto;aspect-ratio:16/11;object-fit:contain;margin:2px auto 16px;background:#171522}
