:root{--ink: #e8e8ff;--dim: rgba(232, 232, 255, .55);--faint: rgba(232, 232, 255, .28);--bg: #06060f;--gold: #ffcf8e;--serif: Georgia, "Songti SC", "STSong", "SimSun", serif}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg)}body{font-family:var(--serif);color:var(--ink);user-select:none}#app,#app canvas{position:fixed;inset:0;width:100%;height:100%;display:block}#app canvas{touch-action:none}canvas{-webkit-user-drag:none}button{font-family:inherit;cursor:pointer}#gate{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at 50% 38%,#0b0b22,#06060f 55%,#030308);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 2.2s ease;gap:0}#gate.leaving{opacity:0;pointer-events:none}#gate-star{width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 24px 6px #c8a8ffbf,0 0 70px 22px #8c78ff59;animation:breathe 3.4s ease-in-out infinite;margin-bottom:46px}@keyframes breathe{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.5);opacity:1}}#gate-title{font-size:clamp(30px,6vw,52px);letter-spacing:.42em;text-indent:.42em;color:var(--ink);opacity:0;animation:fadein 2.6s ease .5s forwards}#gate-title span{color:var(--faint);margin:0 .08em}@keyframes fadein{to{opacity:.92}}#gate-progress{margin-top:60px;display:flex;gap:7px;height:4px}#gate-progress i{width:4px;height:4px;border-radius:50%;background:var(--faint);transition:background .5s,box-shadow .5s,transform .5s}#gate-progress i.on{background:var(--ink);box-shadow:0 0 8px #e8e8ffe6;transform:scale(1.25)}#gate-hint{margin-top:18px;font-size:12px;letter-spacing:.3em;text-indent:.3em;color:var(--faint)}#gate-btn{margin-top:64px;padding:13px 58px;font-size:17px;letter-spacing:.55em;text-indent:.55em;color:var(--ink);background:transparent;border:1px solid var(--faint);border-radius:2px;transition:all .8s ease;opacity:.25;pointer-events:none}#gate-btn.ready{opacity:1;pointer-events:auto;border-color:var(--dim)}#gate-btn.ready:hover{background:#e8e8ff14;box-shadow:0 0 30px #a096ff40}#gate-foot{position:absolute;bottom:34px;font-size:11px;letter-spacing:.35em;color:var(--faint)}#hud{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:0;transition:opacity 1.5s}#hud.on{opacity:1}.hud-btn{position:absolute;pointer-events:auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--dim);font-size:19px;transition:color .4s,transform .4s;border-radius:50%}.hud-btn:hover{color:var(--ink);transform:scale(1.12)}#btn-audio{right:18px;top:16px}#btn-book{right:18px;top:62px;font-size:15px;letter-spacing:0}#btn-photo{right:18px;top:106px;font-size:15px}#photo-tip{position:absolute;left:50%;bottom:26px;transform:translate(-50%);font-size:12px;letter-spacing:.2em;color:var(--dim);white-space:nowrap}#subtitle{position:fixed;left:0;right:0;top:34%;text-align:center;z-index:30;pointer-events:none;font-size:clamp(26px,5vw,44px);letter-spacing:.9em;text-indent:.9em;color:#fffc;opacity:0;transition:opacity 1.8s ease}#subtitle.show{opacity:1}#subtitle small{display:block;margin-top:20px;font-size:12px;letter-spacing:.5em;text-indent:.5em;color:var(--faint)}#fader{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:0}#fader.black{background:#000;transition:opacity .9s ease}#fader.white{background:#f4f2ff;transition:opacity .35s ease}#fader.on{opacity:1}#press-ring{position:fixed;z-index:40;width:54px;height:54px;margin:-27px 0 0 -27px;pointer-events:none;opacity:0;transition:opacity .3s}#press-ring.on{opacity:1}#press-ring svg{width:100%;height:100%;transform:rotate(-90deg)}#press-ring circle{fill:none;stroke-width:2}#press-ring .bg{stroke:#ffffff26}#press-ring .fg{stroke:var(--ink);stroke-linecap:round}#note-overlay{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;background:#03030ab8;backdrop-filter:blur(3px)}#note-overlay.on{display:flex;animation:fadein .6s ease}#note-card{width:min(78vw,420px);padding:58px 44px;position:relative;background:#ece4d2;color:#4a3f2d;border-radius:3px;box-shadow:0 30px 80px #0009,inset 0 0 60px #78603c2e;transform:rotate(-1.2deg);transition:transform .5s;background-size:cover}#note-card:hover{transform:rotate(0) scale(1.02)}#note-no{position:absolute;top:18px;right:24px;font-size:12px;color:#8a7a5c;letter-spacing:.15em}#note-text{font-size:19px;line-height:2.1;letter-spacing:.12em;text-align:center}#note-close{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:11px;color:#a09070;letter-spacing:.4em}#book{position:fixed;inset:0;z-index:70;display:none;align-items:center;justify-content:center;background:#04040cd1;backdrop-filter:blur(4px)}#book.on{display:flex;animation:fadein .5s ease}#book-panel{width:min(92vw,860px);max-height:88vh;overflow:auto;position:relative;padding:40px 42px 30px;border:1px solid rgba(200,168,255,.18);border-radius:6px;background:#0a0a1c;background-size:cover;box-shadow:0 40px 120px #000000b3}#book-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}#book-title{font-size:21px;letter-spacing:.5em}#book-age{font-size:12px;color:var(--dim);letter-spacing:.15em}#book-count{font-size:12px;color:var(--gold);letter-spacing:.2em;margin-bottom:22px}#book-eggs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 14px}.egg{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:4px;font-size:13px;letter-spacing:.08em}.egg .dot{width:8px;height:8px;border-radius:50%;background:#2a2a44;flex:none;transition:all .6s}.egg.got{color:var(--ink)}.egg.got .dot{background:var(--gold);box-shadow:0 0 10px #ffcf8ecc}.egg:not(.got){color:var(--faint)}.egg:not(.got) .name{filter:blur(0px);opacity:.75}.egg:not(.got) .name:after{content:"？"}.egg-section{grid-column:1 / -1;margin:4px 0 2px;padding-bottom:6px;font-size:13px;letter-spacing:.3em;color:var(--gold);opacity:.9;border-bottom:1px solid rgba(200,168,255,.14)}.egg-section:not(:first-child){margin-top:20px}#book-hintline{margin-top:20px;font-size:12px;color:var(--dim);line-height:2;letter-spacing:.1em}#book-close{position:absolute;top:16px;right:22px;font-size:20px;color:var(--dim);background:none;border:none}#book-finale{display:none;margin-top:22px;padding:10px 0;width:100%;background:none;color:var(--gold);border:1px solid rgba(255,207,142,.4);border-radius:3px;font-size:14px;letter-spacing:.5em;text-indent:.5em}#book-finale.on{display:block;animation:fadein 1.5s}#naming{position:fixed;z-index:65;display:none;transform:translate(-50%,-130%);background:#080814eb;border:1px solid var(--faint);border-radius:4px;padding:12px 14px}#naming.on{display:flex;gap:8px;align-items:center}#naming input{width:130px;background:none;border:none;border-bottom:1px solid var(--dim);outline:none;color:var(--ink);font-family:inherit;font-size:15px;text-align:center;letter-spacing:.1em;padding:3px 2px}#naming button{background:none;border:1px solid var(--faint);color:var(--dim);border-radius:3px;padding:4px 12px;font-size:12px}#naming button:hover{color:var(--ink)}#photo-grid{position:fixed;inset:0;z-index:50;pointer-events:none;display:none}#photo-grid.on{display:block}#photo-grid:before,#photo-grid:after{content:"";position:absolute;left:0;right:0;height:1px;background:#ffffff21;top:33.33%}#photo-grid:after{top:66.66%}#photo-grid i{position:absolute;top:0;bottom:0;width:1px;background:#ffffff21}#photo-grid i:nth-child(1){left:33.33%}#photo-grid i:nth-child(2){left:66.66%}#devpanel{position:fixed;left:14px;top:14px;z-index:80;display:none;width:300px;background:#050a12e0;border:1px solid rgba(0,255,200,.25);border-radius:5px;font-family:Consolas,monospace;font-size:11px;color:#9fe8d8;line-height:1.8;padding:12px 14px;white-space:pre-wrap}#devpanel.on{display:block}#tutorial{position:fixed;left:50%;bottom:20%;transform:translate(-50%);z-index:58;text-align:center;pointer-events:none;transition:opacity .45s ease}#tutorial.t-fading{opacity:0}#tutorial .t-step{font-size:16px;letter-spacing:.32em;text-indent:.32em;color:var(--ink);text-shadow:0 0 24px rgba(140,120,255,.65),0 0 6px rgba(232,232,255,.4)}#tutorial .t-sub{margin-top:10px;font-size:11px;letter-spacing:.22em;text-indent:.22em;color:var(--dim)}#tutorial .t-dots{margin-top:14px;display:flex;gap:7px;justify-content:center}#tutorial .t-dots i{width:4px;height:4px;border-radius:50%;background:var(--faint);transition:all .5s}#tutorial .t-dots i.cur{background:var(--ink);box-shadow:0 0 8px #e8e8ffe6;transform:scale(1.3)}#tutorial .t-dots i.done{background:#ffcf8ebf}#tutorial .t-skip{margin-top:14px;pointer-events:auto;background:none;border:none;font-size:10px;letter-spacing:.28em;text-indent:.28em;color:var(--faint);transition:color .4s}#tutorial .t-skip:hover{color:var(--dim)}#help-panel{position:fixed;inset:0;z-index:66;display:flex;align-items:center;justify-content:center;background:#04040e8c;backdrop-filter:blur(3px)}#help-panel .hp-card{max-width:480px;width:calc(100% - 48px);background:#0a0a1eeb;border:1px solid rgba(200,168,255,.22);border-radius:10px;padding:26px 30px 18px;box-shadow:0 0 46px #7864c840}#help-panel .hp-title{font-size:13px;letter-spacing:.3em;text-indent:.3em;text-align:center;color:var(--ink);margin-bottom:18px}#help-panel .hp-row{display:flex;gap:14px;align-items:baseline;padding:6px 0;border-bottom:1px dashed rgba(200,168,255,.1)}#help-panel .hp-row:last-of-type{border-bottom:none}#help-panel .hp-k{flex:0 0 150px;font-size:11px;letter-spacing:.12em;color:var(--warm, #ffcf8e)}#help-panel .hp-v{font-size:11px;letter-spacing:.06em;color:var(--dim);line-height:1.6}#help-panel .hp-sub{margin:12px 0 2px;font-size:10px;letter-spacing:.22em;color:var(--warm, #ffcf8e);opacity:.75}#help-panel .hp-done .hp-v,#help-panel .hp-done .hp-k{opacity:.45}#help-panel .hp-hint{margin-top:14px;text-align:center;font-size:10px;letter-spacing:.24em;text-indent:.24em;color:var(--faint)}#help-panel .hp-replay{display:block;margin:16px auto 4px;padding:7px 22px;background:transparent;border:1px solid rgba(200,168,255,.35);border-radius:20px;color:var(--dim);font-size:11px;letter-spacing:.2em;text-indent:.2em;cursor:pointer;transition:color .3s,border-color .3s}#help-panel .hp-replay:hover{color:var(--ink);border-color:#ffcf8e99}#toast{position:fixed;left:50%;bottom:12%;transform:translate(-50%);z-index:55;font-size:13px;letter-spacing:.35em;text-indent:.35em;color:var(--dim);opacity:0;transition:opacity .8s;pointer-events:none;text-align:center;white-space:nowrap}#toast.on{opacity:1}#flashword{position:fixed;inset:0;z-index:85;display:flex;align-items:center;justify-content:center;font-size:clamp(20px,4vw,34px);letter-spacing:.7em;text-indent:.7em;color:#fff;opacity:0;pointer-events:none;transition:opacity 1.2s}#flashword.on{opacity:.95}@media (max-width: 640px){#book-panel{padding:28px 20px}#book-eggs{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.egg{font-size:11px}}#guide-line{position:fixed;left:0;right:0;bottom:11%;text-align:center;z-index:34;font-size:14px;letter-spacing:.35em;text-indent:.35em;color:#e8e8ff8c;font-family:Georgia,Songti SC,serif;opacity:0;transition:opacity 1.4s;pointer-events:none}#btn-book.guide-pulse{animation:guidepulse 2.4s ease-in-out infinite}@keyframes guidepulse{0%,to{box-shadow:0 0 #ffcf8e00}50%{box-shadow:0 0 18px #ffcf8e8c}}
