:root{--bg:#2a100e;--bg-deep:#190908;--bg-soft:#3d1815;--on-dark:#f4e8d2;--on-dark-soft:#cdb697;--on-dark-faint:#9d8367;--red:#b72d2a;--red-bright:#c8412f;--deep-red:#7d1d1b;--deep-red-dark:#5c1513;--gold:#d9b36a;--gold-soft:#e8c88a;--green:#397b63;--paper:#f4e7ce;--paper-light:#fbf3e2;--paper-deep:#e8d4ae;--ink:#3c3027;--ink-soft:#6b5744;--line:#7c583847;--line-gold:#d9b36a61;--shadow:0 12px 30px #0a040361;--shadow-soft:0 5px 14px #3c261824;--radius:16px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--font-serif:"Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}html{background:#140706}body{font-family:var(--font-sans);color:var(--on-dark);-webkit-font-smoothing:antialiased;overscroll-behavior:none;background:#140706}button,input,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed;opacity:.5}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}::-webkit-scrollbar{width:0;height:0}.viewport{justify-content:center;align-items:stretch;height:100dvh;min-height:100vh;display:flex}.app-shell{background:radial-gradient(ellipse at 50% -10%, #a03a2657, transparent 58%), linear-gradient(180deg, #341613 0%, var(--bg) 36%, var(--bg-deep) 100%);isolation:isolate;flex-direction:column;width:100%;max-width:430px;height:100dvh;min-height:100vh;display:flex;position:relative;overflow:hidden;box-shadow:0 0 60px #0009}.app-shell:before{content:"";opacity:.055;pointer-events:none;z-index:-1;background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%20viewBox='0%200%20180%20180'%3e%3crect%20width='180'%20height='180'%20fill='%23F6EBD5'/%3e%3cg%20fill='%23C9A87A'%20opacity='0.22'%3e%3ccircle%20cx='12'%20cy='18'%20r='1.2'/%3e%3ccircle%20cx='47'%20cy='9'%20r='0.9'/%3e%3ccircle%20cx='88'%20cy='27'%20r='1.1'/%3e%3ccircle%20cx='132'%20cy='14'%20r='0.8'/%3e%3ccircle%20cx='166'%20cy='35'%20r='1.3'/%3e%3ccircle%20cx='25'%20cy='62'%20r='0.9'/%3e%3ccircle%20cx='71'%20cy='74'%20r='1.2'/%3e%3ccircle%20cx='112'%20cy='58'%20r='0.7'/%3e%3ccircle%20cx='153'%20cy='81'%20r='1'/%3e%3ccircle%20cx='9'%20cy='108'%20r='1.1'/%3e%3ccircle%20cx='55'%20cy='121'%20r='0.8'/%3e%3ccircle%20cx='97'%20cy='104'%20r='1.3'/%3e%3ccircle%20cx='139'%20cy='127'%20r='0.9'/%3e%3ccircle%20cx='174'%20cy='112'%20r='1'/%3e%3ccircle%20cx='32'%20cy='155'%20r='1.2'/%3e%3ccircle%20cx='78'%20cy='166'%20r='0.9'/%3e%3ccircle%20cx='120'%20cy='149'%20r='1.1'/%3e%3ccircle%20cx='161'%20cy='170'%20r='0.8'/%3e%3c/g%3e%3cg%20stroke='%23B98F5C'%20stroke-width='0.6'%20opacity='0.13'%20fill='none'%3e%3cpath%20d='M4%2041h36M96%2046h52M18%2091h29M118%2092h44M6%20140h48M92%20140h61'/%3e%3cpath%20d='M64%206v22M148%2060v18M42%20106v20M108%20160v14'/%3e%3c/g%3e%3cg%20fill='%238C6239'%20opacity='0.06'%3e%3cellipse%20cx='60'%20cy='45'%20rx='22'%20ry='9'/%3e%3cellipse%20cx='140'%20cy='118'%20rx='26'%20ry='11'/%3e%3c/g%3e%3c/svg%3e") 0 0/180px 180px;position:absolute;top:0;bottom:0;left:0;right:0}.shell-inner{z-index:1;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.page{-webkit-overflow-scrolling:touch;min-height:0;padding:0 16px calc(20px + var(--safe-bottom));color:var(--on-dark);flex:1;overflow:hidden auto}.page--flat{padding-left:0;padding-right:0}.page--center{flex-direction:column;justify-content:center;display:flex}.rotate-mask{z-index:99;background:var(--bg-deep);color:var(--on-dark);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:30px;font-size:17px;line-height:1.7;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.rotate-mask span{font-size:42px}@media (orientation:landscape) and (max-height:540px){.rotate-mask{display:flex}}.topbar{min-height:54px;padding:calc(var(--safe-top) + 9px) 14px 9px;border-bottom:1px solid var(--line-gold);z-index:5;background:linear-gradient(#341613,#2a100ef5);flex:none;align-items:center;gap:10px;display:flex;position:relative}.topbar:after{content:"";background:linear-gradient(90deg,#0000,#d9b36a59,#0000);height:1px;position:absolute;bottom:2px;left:14px;right:14px}.topbar__side{flex:none;align-items:center;width:auto;min-width:44px;display:flex}.topbar__side--right{justify-content:flex-end;gap:6px;width:auto;min-width:44px}.topbar__brand{box-shadow:none;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.topbar--brand{gap:6px;padding-left:10px;padding-right:10px}.topbar--brand .topbar__title{letter-spacing:1px;font-size:14px}.topbar__brand img{filter:brightness(0)invert();width:200px;max-width:54vw;height:auto;display:block}.topbar__title{text-align:center;font-family:var(--font-serif);letter-spacing:3px;color:var(--gold-soft);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:18px;font-weight:700;overflow:hidden}.icon-btn{border:1px solid var(--line-gold);width:38px;height:38px;color:var(--gold-soft);background:#d9b36a14;border-radius:10px;justify-content:center;align-items:center;font-size:19px;line-height:1;display:inline-flex}.icon-btn:active{transform:scale(.94)}.topbar__progress{letter-spacing:1px;color:var(--gold-soft);border:1px solid var(--line-gold);white-space:nowrap;background:#d9b36a0f;border-radius:999px;padding:6px 11px;font-size:11.5px}.action-bar{z-index:8;padding:14px 0 calc(10px + var(--safe-bottom));background:linear-gradient(180deg, #19090800, var(--bg-deep) 30%);gap:10px;margin-top:14px;display:flex;position:sticky;bottom:0}.action-bar>*{flex:1}.eyebrow{letter-spacing:3.5px;color:var(--gold);text-align:center;font-size:10.5px}.h1{font-family:var(--font-serif);letter-spacing:4px;text-align:center;color:var(--gold-soft);margin:8px 0;font-size:34px;line-height:1.25}.h2{font-family:var(--font-serif);letter-spacing:2px;color:var(--gold-soft);margin:0 0 10px;font-size:24px}.h3{color:var(--on-dark);margin:0 0 8px;font-size:15.5px;font-weight:700}.text{color:var(--on-dark);font-size:15px;line-height:1.8}.small{color:var(--on-dark-soft);font-size:12.5px;line-height:1.7}.muted{color:var(--on-dark-faint)}.center{text-align:center}.gold{color:var(--gold)}.divider{background:linear-gradient(90deg, transparent, var(--line-gold), transparent);height:1px;margin:16px 0}.section-title{font-family:var(--font-serif);letter-spacing:3px;color:var(--gold-soft);align-items:center;gap:12px;margin:22px 0 12px;font-size:16px;display:flex}.section-title:before,.section-title:after{content:"";background:var(--line-gold);flex:1;height:1px}.card,.sheet,.home-panel,.knowledge,.notice,.tip-box,.feedback,.item-card,.choice-btn,.timeline-item,.field,.badge-item,.intel-item,.pack-slot,.runner-btn,.rhythm-pad,.tile,.cert-preview,.photo-frame__footer,.score-ring{color:var(--ink)}.card{background:linear-gradient(160deg, #fbf3e2, var(--paper));border-radius:var(--radius);box-shadow:var(--shadow), inset 0 0 0 3px #fffcf28c;border:1px solid #d9b36a8c;padding:18px;position:relative}.card:before{content:"";pointer-events:none;border:1px solid #7c583829;border-radius:11px;position:absolute;top:5px;bottom:5px;left:5px;right:5px}.card--flat{box-shadow:var(--shadow-soft);background:#fbf3e2f0}.card+.card{margin-top:12px}.card .h2,.sheet .h2,.home-panel .h2,.badge-card .h2{color:var(--deep-red)}.card .h3,.sheet .h3,.home-panel .h3,.badge-card .h3{color:var(--ink)}.card .small,.sheet .small,.home-panel .small,.knowledge .small,.notice .small,.tip-box .small,.feedback .small,.badge-item .small,.badge-card .small,.cert-preview .small{color:var(--ink-soft)}.card .text,.sheet .text,.home-panel .text{color:var(--ink)}.card .eyebrow,.sheet .eyebrow,.home-panel .eyebrow{color:var(--deep-red)}.btn{letter-spacing:2px;border:1px solid var(--line-gold);min-height:50px;color:var(--gold-soft);background:#d9b36a12;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15.5px;font-weight:700;transition:transform .15s,box-shadow .2s,background .2s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(2px)scale(.99)}.btn--primary{color:#fff4dd;text-shadow:0 1px 2px #460c0880;background:linear-gradient(145deg,#c8412f,#8e201c 78%);border:1px solid #e0ad62;box-shadow:inset 0 1px #ffffff42,0 10px 24px #8c1e186b}.btn--primary:hover:not(:disabled){background:linear-gradient(145deg,#d04834,#9a241f 78%)}.btn--gold{color:#3c2a13;background:linear-gradient(160deg,#dfba73,#b8842f);border-color:#8d6222}.btn--ghost{color:var(--on-dark-soft);box-shadow:none;background:0 0;border-color:#0000}.btn--outline{color:var(--gold);background:#d9b36a0d;border:1.5px solid #d9b36ab3}.card .btn--outline,.sheet .btn--outline,.home-panel .btn--outline,.game-area .btn--outline{color:var(--deep-red);background:#7d1d1b08;border-color:#7d1d1b99}.card .btn--ghost,.sheet .btn--ghost,.home-panel .btn--ghost,.game-area .btn--ghost{color:var(--ink-soft)}.btn--block{width:100%}.btn--lg{min-height:56px;font-size:16.5px}.btn--sm{letter-spacing:1px;border-radius:9px;min-height:40px;padding:0 12px;font-size:13px}.btn-row{gap:10px;display:flex}.btn-row>*{flex:1}.chip{letter-spacing:.5px;border:1px solid var(--line-gold);color:var(--gold-soft);background:#d9b36a17;border-radius:999px;align-items:center;gap:5px;padding:5px 11px;font-size:11.5px;display:inline-flex}.card .chip,.sheet .chip,.home-panel .chip{border-color:var(--line);color:var(--ink-soft);background:#fffaeecc}.chip--gold{color:#f0d69c;background:#d9b36a29;border-color:#d9b36aa6}.card .chip--gold,.sheet .chip--gold,.home-panel .chip--gold{color:#8a5d1c;background:#d4a14933}.chip--green{color:#9fd6b9;background:#397b6329;border-color:#58a3828c}.card .chip--green,.sheet .chip--green,.home-panel .chip--green{color:#245c48;background:#397b6324}.chip--red{color:#f2b6a6;background:#b72d2a29;border-color:#c74e3e99}.card .chip--red,.sheet .chip--red,.home-panel .chip--red{color:var(--deep-red);background:#b72d2a1a}.progress-track{border:1px solid var(--line-gold);background:#00000047;border-radius:999px;height:9px;overflow:hidden;box-shadow:inset 0 1px 3px #0000004d}.progress-track--lg{height:12px}.progress-fill{background:linear-gradient(90deg, var(--gold), #e2a24f, var(--red-bright));border-radius:999px;height:100%;transition:width .5s;box-shadow:0 0 12px #e2a24f73}.notice{border:1px solid #d9b36a66;border-left:3px solid var(--gold);color:var(--ink-soft);box-shadow:var(--shadow-soft);background:#fbf3e2f0;border-radius:10px;padding:11px 13px;font-size:12.5px;line-height:1.75}.notice--demo{border-left-color:var(--green)}.home-beian{border-top:1px dashed var(--line);text-align:center;letter-spacing:.5px;margin-top:12px;padding-top:10px;font-size:10px}.home-beian a{color:var(--ink-soft);text-decoration:none}.home-beian a:active{color:var(--deep-red)}.toast{left:50%;bottom:calc(96px + var(--safe-bottom));z-index:30;border:1px solid var(--line-gold);max-width:86%;color:var(--on-dark);text-align:center;box-shadow:var(--shadow);background:#140807f0;border-radius:999px;padding:11px 18px;font-size:13px;animation:.25s toast-in;position:absolute;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.photo-frame{border:1px solid var(--line-gold);box-shadow:var(--shadow);background:#14080799;border-radius:14px;overflow:hidden}.photo-frame__stage{aspect-ratio:16/10;cursor:zoom-in;background:#241410;position:relative;overflow:hidden}.photo-frame__img{object-fit:cover;filter:sepia(.22)contrast(1.06)saturate(.82);width:100%;height:100%;animation:.55s both photo-fade;display:block}@keyframes photo-fade{0%{opacity:.35;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}.photo-frame__progress{z-index:3;background:#ffffff29;height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.photo-frame__progress i{transform-origin:0;background:linear-gradient(90deg, var(--gold-soft), var(--red-bright));width:100%;height:100%;animation-name:photo-progress;animation-timing-function:linear;animation-fill-mode:forwards;display:block}@keyframes photo-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.photo-frame__state{color:var(--ink-soft);letter-spacing:.5px;font-size:11px}.photo-frame__controls{align-items:center;gap:8px;display:flex}.photo-frame__play{border:1px solid var(--line);width:26px;height:26px;color:var(--deep-red);background:#fffaeee6;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:10px;line-height:1;display:flex}.photo-frame__play:active{transform:scale(.92)}.photo-frame__stage:after{content:"";pointer-events:none;background:linear-gradient(#19090852,#0000 38%,#190908d1);position:absolute;top:0;bottom:0;left:0;right:0}.photo-frame__badge{z-index:2;letter-spacing:2px;color:#fff2da;background:#7d1d1be0;border:1px solid #e8c88ab3;border-radius:4px;padding:4px 9px;font-size:10px;position:absolute;top:10px;left:10px}.photo-frame__badge--right{background:#397b63e6;left:auto;right:10px}.photo-frame__nav{z-index:3;color:#fff2da;background:#1909088c;border-radius:8px;width:34px;height:44px;font-size:26px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.photo-frame__nav--prev{left:6px}.photo-frame__nav--next{right:6px}.photo-frame__caption{z-index:2;color:#f6ebd5;text-shadow:0 1px 3px #000c;flex-direction:column;gap:2px;padding:16px 12px 9px;font-size:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.photo-frame__credit{color:#d8c3a0;font-size:9.5px}.photo-frame__footer{background:#f4e7cef5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.photo-frame__tabs{gap:4px;display:flex}.photo-frame__tabs button{border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:5px 10px;font-size:11.5px}.photo-frame__tabs button.is-active{background:var(--deep-red);border-color:var(--deep-red);color:#fff2da}.photo-frame__dots{gap:5px;display:flex}.photo-frame__dots button{background:#7c58384d;border-radius:50%;width:7px;height:7px}.photo-frame__dots button.is-active{background:var(--red);box-shadow:0 0 0 3px #b72d2a2e}.photo-lightbox{z-index:40;background:#0a0403f5;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.photo-lightbox img{object-fit:contain;border:1px solid var(--line-gold);max-width:100%;max-height:78%}.photo-lightbox__note{color:var(--on-dark-soft);text-align:center;font-size:11px;line-height:1.6}.page--home{padding-left:0;padding-right:0}.home-hero{background:var(--bg-deep);height:min(60vh,500px);min-height:370px;position:relative;overflow:hidden}.home-hero__slide{opacity:0;pointer-events:none;transition:opacity .9s;position:absolute;top:0;bottom:0;left:0;right:0}.home-hero__slide.is-active{opacity:1}.home-hero__slide>img{object-fit:cover;width:100%;height:100%;display:block}.home-hero__veil{z-index:1;background:linear-gradient(180deg, #18090894 0%, #18090800 27%), linear-gradient(180deg, #18090800 28%, #18090838 44%, #1809088f 60%, #180908d6 78%, #180908f5 90%, var(--bg) 100%);pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.home-hero__frame{z-index:2;pointer-events:none;border:1px solid #d9b36a47;border-radius:4px;position:absolute;top:12px;bottom:12px;left:12px;right:12px}.home-hero__content{z-index:3;position:absolute;bottom:96px;left:26px;right:26px}.home-hero__subtitle{font-family:var(--font-serif);letter-spacing:2.5px;color:#f2d79f;text-shadow:0 2px 8px #000000bf;margin:0 0 6px;font-size:16px}.home-hero__years{letter-spacing:3px;color:#e8c88ac7;text-shadow:0 1px 4px #000c;margin:10px 0 0;font-size:10.5px}.home-credit{border-top:1px dashed var(--line);text-align:center;margin-top:18px;padding-top:14px}.home-credit__logo{opacity:.96;width:282px;max-width:100%;height:auto;margin:0 auto 10px}.home-credit__text{color:var(--ink-soft);font-size:10px;line-height:1.75}.home-credit__text b{color:var(--ink);letter-spacing:.5px;font-size:11px;display:block}.home-credit__text span{display:block}.home-credit__tail{letter-spacing:2px;color:var(--ink-soft);margin-top:2px;font-size:9px}.home-hero__content .eyebrow{text-align:left;color:var(--gold-soft)}.home-hero__title{font-family:var(--font-serif);letter-spacing:8px;color:#fbf0d8;text-shadow:0 3px 20px #000c;margin:12px 0 0;font-size:clamp(46px,13.5vw,66px);font-weight:700;line-height:1.08}.home-hero__rule{background:var(--gold);width:54px;height:2px;margin:16px 0 12px}.home-hero__slogan{letter-spacing:3px;color:var(--gold-soft);margin:0;font-size:13px}.home-hero__carousel-ui{z-index:4;padding:0 20px 26px;position:absolute;bottom:0;left:0;right:0}.home-hero__dots{align-items:center;gap:5px;margin-bottom:6px;display:flex}.home-hero__dots>button:not(.home-hero__pause){background:#ffffff61;border-radius:999px;width:6px;height:6px;transition:width .3s,background .3s}.home-hero__dots>button.is-active{background:var(--gold);width:18px}.home-hero__pause{width:20px;height:20px;color:var(--gold-soft);background:#14080780;border:1px solid #e8c88a99;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;font-size:8px;line-height:1;display:flex}.home-hero__caption{color:#e8c88ad9;letter-spacing:.4px;text-shadow:0 1px 3px #000c;font-size:9.5px}.home-panel{z-index:2;background:linear-gradient(160deg, #fbf3e2, var(--paper));box-shadow:var(--shadow), inset 0 0 0 3px #fffcf299;border:1px solid #d9b36aa6;border-radius:18px;margin:-10px 14px 0;padding:20px 18px 18px;position:relative}.home-panel:before{content:"";pointer-events:none;border:1px solid #7c583829;border-radius:12px;position:absolute;top:6px;bottom:6px;left:6px;right:6px}.home-panel__head{justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.home-panel__count{color:var(--deep-red);align-items:baseline;gap:3px;display:flex}.home-panel__count b{font-family:var(--font-serif);font-size:38px;line-height:1}.home-panel__count span{color:var(--ink-soft);font-size:12px}.home__actions{gap:10px;margin-top:18px;display:grid}.home__links{color:var(--deep-red);text-underline-offset:4px;justify-content:center;gap:20px;margin-top:16px;font-size:12.5px;text-decoration:underline;display:flex}.home__links button{color:var(--deep-red)}.home-panel .btn--ghost{color:var(--ink-soft)}.map-intro{padding:16px 18px 0}.map-wrap{box-shadow:var(--shadow);border:1px solid #d9b36a99;border-radius:14px;margin:14px 4px 0;position:relative;overflow:hidden}.map-svg{touch-action:manipulation;width:100%;height:auto;display:block}.map-legend{color:var(--on-dark-soft);justify-content:center;gap:16px;padding:12px 0 4px;font-size:11.5px;display:flex}.map-legend i{vertical-align:-1px;border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.map-node{cursor:pointer}.map-node__hit{fill:#0000}.map-node__disc{fill:#fcf5e6;stroke:var(--deep-red);stroke-width:2.4px}.map-node--current .map-node__disc{fill:var(--red-bright);stroke:#4a1210}.map-node--locked .map-node__disc{fill:#ded0b6;stroke:#9b8a72}.map-node__label{fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:#f6ebd5f2;stroke-width:3px;stroke-linejoin:round;font-size:10.5px}.map-node--locked .map-node__label{fill:#8a7a63}.map-node__num{fill:var(--deep-red);text-anchor:middle;font-size:11px;font-weight:700}.map-node--current .map-node__num{fill:#fff6e4}.map-node--current .map-node__pulse{fill:none;stroke:var(--gold);stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:1.9s ease-out infinite pulse-ring}.route-base{fill:none;stroke:#7c583873;stroke-width:4px;stroke-linecap:round;stroke-dasharray:2 9}.route-done{fill:none;stroke:var(--red-bright);stroke-width:5px;stroke-linecap:round;filter:drop-shadow(0 0 3px #c8412f80)}.map-stamp{font-family:var(--font-serif);fill:#7d1d1bbf;letter-spacing:2px;font-size:11px}.sheet-backdrop{z-index:20;background:#0a0403b8;align-items:flex-end;animation:.2s fade-in;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.sheet{background:linear-gradient(160deg, #fbf3e2, var(--paper));border-top:1px solid var(--gold);width:100%;padding:10px 16px calc(20px + var(--safe-bottom));border-radius:22px 22px 0 0;max-height:84%;animation:.3s slide-up;overflow-y:auto;box-shadow:0 -14px 34px #0a040380}.sheet__handle{background:#7c583859;border-radius:999px;width:46px;height:4px;margin:0 auto 14px}.sheet__head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.story-kicker{color:var(--gold);letter-spacing:3px;align-items:center;gap:10px;margin:16px 0 10px;font-size:10px;display:flex}.story-kicker__no{font-family:var(--font-serif);letter-spacing:0;color:var(--gold-soft);border:1px solid var(--line-gold);border-radius:6px;padding:1px 7px;font-size:22px}.story-kicker__line{background:var(--line-gold);flex:1;height:1px}.story{text-align:left}.story__meta{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.story__text{font-family:var(--font-serif);text-indent:2em;color:var(--ink);font-size:16px;line-height:2}.knowledge{border:1px solid #b72d2a59;border-left:3px solid var(--deep-red);color:var(--ink);box-shadow:var(--shadow-soft);background:#fbf3e2f2;border-radius:10px;padding:13px 15px;font-size:14px;line-height:1.85}.summary-score{align-items:center;gap:18px;margin:16px 0;display:flex}.score-ring{border:3px solid var(--gold);background:radial-gradient(circle,#fff8e9,#edd6ad);border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;width:102px;height:102px;display:flex;box-shadow:0 0 0 6px #d9b36a29,0 10px 24px #0a040359}.score-ring b{font-family:var(--font-serif);color:var(--deep-red);font-size:34px;line-height:1}.score-ring span{color:var(--ink-soft);letter-spacing:1px;margin-top:5px;font-size:10.5px}.badge-card{box-shadow:var(--shadow-soft);background:linear-gradient(120deg,#d4a14942,#fbf3e2f2);border:1px solid #d9b36ab3;border-radius:14px;align-items:center;gap:14px;padding:14px;display:flex}.badge-grid{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.badge-item{border:1px solid var(--line);text-align:center;min-height:100px;box-shadow:var(--shadow-soft);background:#fbf3e2f0;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:10px 3px;font-size:10.5px;line-height:1.4;display:flex}.badge-item--locked{opacity:.42;filter:grayscale()}.settings-list{gap:2px;display:grid}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:58px;display:flex}.setting-row:last-child{border-bottom:0}.setting-row__label b{color:var(--ink);font-size:14.5px;display:block}.setting-row__label small{color:var(--ink-soft);margin-top:3px;font-size:11.5px;line-height:1.5;display:block}.switch{background:#c9b89a;border:1px solid #7c583859;border-radius:999px;flex:none;width:50px;height:29px;transition:background .2s;position:relative}.switch:after{content:"";background:#fffaf0;border-radius:50%;width:23px;height:23px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #00000040}.switch[aria-checked=true]{background:var(--green)}.switch[aria-checked=true]:after{transform:translate(21px)}.level-head{justify-content:space-between;align-items:center;gap:10px;margin:16px 0 12px;display:flex}.game-area{margin-top:10px}.game-status{color:var(--on-dark-soft);justify-content:space-between;align-items:center;gap:10px;margin:12px 0;font-size:12.5px;display:flex}.tip-box{border:1px solid #d9b36a99;border-left:3px solid var(--gold);color:var(--ink);box-shadow:var(--shadow-soft);background:#fbf3e2f2;border-radius:10px;margin-top:10px;padding:11px 13px;font-size:13px;line-height:1.75;animation:.25s fade-up}.feedback{border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow-soft);background:#fbf3e2f2;border-radius:10px;margin-top:10px;padding:11px 13px;font-size:13.5px;line-height:1.75;animation:.25s fade-up}.feedback--ok{border-color:#397b6380;border-left:3px solid var(--green)}.feedback--no{border-color:#b72d2a73;border-left:3px solid var(--red)}.items-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.item-card{border:1.5px solid var(--line);min-height:108px;color:var(--ink);box-shadow:var(--shadow-soft);background:#fffaeef2;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:0 0 7px;font-size:12px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.item-card:active{transform:scale(.96)}.item-card--selected{border-color:var(--red);box-shadow:0 0 0 2px #b72d2a59}.item-card--dim{opacity:.45}.item-card__img{object-fit:cover;border-bottom:1px solid var(--line);filter:sepia(.14)contrast(1.04);width:100%;height:74px;display:block}.item-card--selected .item-card__img{filter:none}.item-card__tag{color:#f6ebd5;letter-spacing:.5px;background:#3c3027c7;border-radius:4px;padding:3px 5px;font-size:9px;line-height:1;position:absolute;top:5px;right:5px}.item-card__tag.is-photo{background:#7d1d1be6;border:1px solid #e8c88a99}.item-card__name{text-align:center;letter-spacing:.5px;margin-top:6px;font-weight:700;display:block}.pack-grid{grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px;display:grid}.pack-slot{aspect-ratio:1;color:var(--deep-red);background:#ecd9b680;border:1.5px dashed #7c58388c;border-radius:10px;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.pack-slot--filled{border-style:solid;border-color:var(--deep-red);background:#fffaeef2}.pack-slot__img{object-fit:cover;border-radius:8px;width:100%;height:100%}.intel-list{gap:8px;margin:10px 0;display:grid}.intel-item{border:1px solid var(--line);color:var(--ink);background:#fffaeec7;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13.5px;line-height:1.7;display:flex}.intel-item b{color:var(--deep-red);flex:none}.choice-list{gap:10px;display:grid}.choice-btn{text-align:left;border:1.5px solid var(--line);width:100%;min-height:62px;color:var(--ink);background:#fffaeee6;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;font-size:14.5px;line-height:1.6;transition:transform .15s;display:flex}.choice-btn:active{transform:scale(.99)}.choice-btn__no{background:var(--deep-red);color:#fff6e4;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.choice-btn--correct{border-color:var(--green);background:#397b6324}.choice-btn--wrong{border-color:var(--red);background:#b72d2a1a}.timeline-list{gap:8px;display:grid}.timeline-item{border:1.5px solid var(--line);text-align:left;width:100%;min-height:60px;color:var(--ink);background:#fffaeeeb;border-radius:12px;align-items:center;gap:12px;padding:8px 12px;font-size:14.5px;transition:transform .15s;display:flex}.timeline-item--active{border-color:var(--gold);background:#d4a14933;box-shadow:0 0 0 2px #d4a14947}.timeline-index{background:var(--deep-red);color:#fff6e4;border-radius:8px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.timeline-item__text{flex:1}.timeline-item__hint{color:var(--ink-soft);font-size:11px}.puzzle-frame{box-shadow:var(--shadow);background:#efe0c2;border:1px solid #d9b36a8c;border-radius:12px;overflow:hidden}.puzzle-frame svg{width:100%;height:auto;display:block}.cross-node{cursor:pointer}.cross-node__disc{fill:#fcf5e6;stroke:var(--deep-red);stroke-width:2.2px}.cross-node--done .cross-node__disc{fill:var(--green);stroke:#245642}.cross-node--target .cross-node__disc{fill:var(--gold)}.cross-node__label{fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:#f6ebd5;stroke-width:3px;stroke-linejoin:round;font-size:10px}.cross-path{fill:none;stroke:var(--red-bright);stroke-width:3.6px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 6}@keyframes draw-line{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.cross-path--anim{stroke-dasharray:100;stroke-dashoffset:100px;animation:.85s forwards draw-line}.route-option__hit{fill:none;stroke:#0000;stroke-width:22px;cursor:pointer}.route-option__line{fill:none;stroke:#7d1d1b;stroke-width:3px;stroke-dasharray:8 6;stroke-linecap:round}.route-option--selected .route-option__line{stroke:#d4a149;stroke-width:5px;stroke-dasharray:none}.route-option--correct .route-option__line{stroke:var(--green);stroke-width:5px;stroke-dasharray:none}.route-option--wrong .route-option__line{stroke:var(--red);stroke-width:4px}.route-option__label{fill:#3c3027;paint-order:stroke;stroke:#f6ebd5;stroke-width:3px;font-size:12px;font-weight:700}.tile-grid-wrap{margin-top:10px;position:relative}.tile-grid{aspect-ratio:900/918;grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.tile-badge{z-index:2;letter-spacing:1px;color:#fff2da;background:#7d1d1be0;border:1px solid #e8c88a99;border-radius:4px;padding:3px 7px;font-size:9.5px;position:absolute;top:8px;left:8px}.puzzle-credit{color:var(--on-dark-soft);text-align:center;margin-top:7px;font-size:10.5px;line-height:1.65}.tile{border:1.5px solid var(--line);font-family:var(--font-serif);color:var(--deep-red);text-align:center;background:#ead7b5;border-radius:8px;justify-content:center;align-items:center;padding:4px;font-size:13px;line-height:1.4;display:flex;position:relative;overflow:hidden}.tile--selected{border-color:var(--gold);box-shadow:0 0 0 3px #d4a14966}.tile__art{object-fit:cover;opacity:.55;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.tile__label{z-index:1;text-shadow:0 1px 3px #f6ebd5;background:#f6ebd5cc;border-radius:4px;padding:2px 5px;position:relative}.canvas-frame{box-shadow:var(--shadow);touch-action:none;background:#d8c39c;border:1px solid #d9b36a99;border-radius:12px;position:relative;overflow:hidden}.canvas-frame canvas{width:100%;height:auto;display:block}.canvas-frame--layered{aspect-ratio:390/230}.canvas-bg{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.canvas-layer{top:0;bottom:0;left:0;right:0;width:100%!important;height:100%!important;position:absolute!important}.canvas-frame__tag{z-index:2;color:#fff6e4;border:1px solid var(--line-gold);letter-spacing:1px;background:#3c3027c7;border-radius:999px;padding:4px 9px;font-size:11px;position:absolute;top:8px;left:8px}.event-chip{border:1px solid var(--line);color:var(--deep-red);background:#fffaeeeb;border-radius:999px;padding:5px 10px;font-size:11.5px;position:absolute;top:10px;right:10px}.rhythm-pad{height:138px;color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:none;background:#fbf3e2f0;border:2px dashed #b72d2a99;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin-top:12px;transition:background .15s,transform .1s;display:flex}.rhythm-pad--active{background:#b72d2a2e;transform:scale(.99)}.rhythm-pad__prompt{font-family:var(--font-serif);letter-spacing:3px;color:var(--deep-red);font-size:22px}.rhythm-pad__sub{color:var(--ink-soft);font-size:11.5px}.beat-bar{background:#7c583838;border-radius:999px;width:74%;height:10px;overflow:hidden}.beat-fill{background:linear-gradient(90deg, var(--gold), var(--red-bright));border-radius:999px;height:100%}.beat-dots{justify-content:center;gap:7px;margin-top:10px;display:flex}.beat-dots i{background:#d9b36a4d;border-radius:50%;width:9px;height:9px}.beat-dots i.is-done{background:var(--green)}.beat-dots i.is-now{background:var(--red-bright);box-shadow:0 0 0 4px #c8412f3d}.runner-controls{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.runner-btn{border:2px solid var(--deep-red);min-height:78px;color:var(--deep-red);touch-action:manipulation;box-shadow:var(--shadow-soft);background:#fbf3e2f2;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:15px;font-weight:700;display:flex}.runner-btn small{color:var(--ink-soft);font-size:11px;font-weight:400}.runner-btn:active{background:#b72d2a29;transform:scale(.98)}.runner-btn.is-holding{color:#4a2d14;background:linear-gradient(160deg,#f0d69c,#d9b36a);border-color:#8d6222;transform:scale(.98)}.stamina-row{color:var(--on-dark-soft);align-items:center;gap:8px;margin-top:10px;font-size:12px;display:flex}.stamina-row .progress-track{flex:1}.luding-hud{border:1px solid var(--line-gold);background:#14080799;border-radius:14px;margin:12px 0;padding:12px 14px}.luding-hud__row{color:var(--on-dark-soft);align-items:center;gap:9px;font-size:11px;display:flex}.luding-hud__row .progress-track{flex:1;height:8px}.luding-hud__stats{color:var(--on-dark-soft);flex-wrap:wrap;align-items:center;gap:14px;margin-top:12px;font-size:11.5px;display:flex}.luding-hud__stats b{font-family:var(--font-serif);color:var(--gold-soft);margin-left:3px;font-size:17px}.luding-team{align-items:center;gap:5px;margin-left:auto;display:flex}.luding-team span{margin-right:2px;font-size:10px}.luding-team i{border:1px solid var(--line-gold);background:#d9b36a1f;border-radius:50%;width:15px;height:15px;transition:background .25s,box-shadow .25s}.luding-team i.is-on{background:var(--gold);box-shadow:0 0 10px #e8c88abf}.luding-next{text-align:center;color:var(--on-dark-soft);letter-spacing:.5px;margin:12px 0 2px;font-size:12.5px}.luding-next b{color:var(--gold-soft)}.luding-status{text-align:center;color:var(--on-dark-soft);min-height:20px;margin-top:10px;font-size:12.5px}.field{border:1.5px solid var(--line);width:100%;min-height:50px;color:var(--ink);background:#fffaeef5;border-radius:12px;padding:0 14px;font-size:15px}.cert-preview{box-shadow:var(--shadow);background:#f6ebd5;border:1px solid #d9b36a99;border-radius:12px;margin-top:12px;overflow:hidden}.cert-preview canvas{width:100%;height:auto;display:block}.brand-lockup{width:100%;max-width:264px;height:auto;margin:2px auto 12px;display:block}.brand-lockup--coop{max-width:300px;margin-bottom:14px}.brand-subtitle{text-align:center;font-family:var(--font-serif);letter-spacing:2px;color:var(--deep-red);font-size:15px}.about-list{color:var(--ink);padding-left:20px;font-size:13.5px;line-height:1.85}.about-list li{margin-bottom:6px}.ref-link{color:var(--deep-red);border-bottom:1px dashed var(--line);word-break:break-all;padding:9px 0;font-size:12.5px;line-height:1.6;display:block}.result-total{text-align:center;padding:18px 0 8px}.result-total b{font-family:var(--font-serif);color:var(--deep-red);margin:6px 0;font-size:52px;line-height:1.1;display:block}.archive-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.archive-item{border:1px solid var(--line);background:#efe0c2;border-radius:10px;overflow:hidden}.archive-item img{aspect-ratio:4/3;object-fit:cover;filter:sepia(.2)contrast(1.05);width:100%}.archive-item span{color:var(--ink-soft);padding:5px 6px;font-size:9.5px;line-height:1.45;display:block}.item-archive{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.item-archive__cell{text-align:center;position:relative}.item-archive__cell img{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);filter:sepia(.12)contrast(1.03);border-radius:8px;width:100%}.item-archive__cell span{color:var(--ink);margin-top:4px;font-size:10px;display:block}.item-archive__cell i{color:var(--ink-soft);background:#3c302724;border-radius:3px;margin-top:2px;padding:1px 4px;font-size:8.5px;font-style:normal;display:inline-block}.item-archive__cell i.is-photo{color:var(--deep-red);background:#7d1d1b24}.fade-in{animation:.35s both fade-in}.slide-up{animation:.35s both slide-up}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-ring{0%{opacity:.9;transform:scale(.75)}to{opacity:0;transform:scale(1.9)}}@keyframes route-grow{0%{transform:scaleX(.05)}to{transform:scaleX(1)}}.demo-strip{padding:calc(var(--safe-top) + 7px) 14px 7px;background:var(--green);color:#f6f4e6;flex:none;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;display:flex}.demo-strip+.topbar{padding-top:9px}.demo-strip button{color:#fff;border:1px solid #fff9;border-radius:999px;flex:none;padding:3px 10px;font-size:11px}.route-advance{margin:8px 0 4px}.route-advance__label{color:var(--on-dark-soft);justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.route-advance__track{border:1px solid var(--line-gold);background:#00000047;border-radius:999px;height:8px;overflow:hidden}.route-advance__track i{background:linear-gradient(90deg, var(--gold), var(--red-bright));transform-origin:0;border-radius:999px;width:100%;height:100%;animation:1.1s both route-grow;display:block}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}
