:root{font-family:"DM Sans","Noto Sans JP",sans-serif;color:#262a35;background:#f4f1eb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;font-weight:400;--ink:#262a35;--muted:#878994;--line:#e9e6e0;--purple:#6757c8;--purple-dark:#5141ac;--paper:#fffefa}
*{box-sizing:border-box}
body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse at 50% -22%,#fffdf8 0,#f4f1eb 68%);font-size:14px}
button{font:inherit;color:inherit}
.app{max-width:1190px;margin:auto;padding:0 34px 30px}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(220,217,210,.75)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-weight:700;font-size:14px;letter-spacing:.025em}.brand-mark{width:35px;height:35px;background:var(--purple);color:white;border-radius:12px;display:grid;place-items:center;font-size:17px;box-shadow:0 4px 12px #6757c82c}.brand-sub{display:block;color:#93939a;font-size:10px;font-weight:400;margin-top:3px;letter-spacing:.07em}
.top-actions{display:flex;align-items:center;gap:18px}.saved-indicator{font-size:11px;color:#858791}.saved-indicator i,.live-badge i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#64bd90;margin-right:7px;box-shadow:0 0 0 3px #64bd9020}.icon-button{border:1px solid var(--line);background:#fffdfa;border-radius:12px;width:37px;height:37px;cursor:pointer;font-size:15px;transition:.2s}.icon-button:hover{border-color:#beb6ef;transform:translateY(-1px)}
.hero{padding:28px 0 26px}.hero-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.eyebrow{font-size:9px;letter-spacing:.16em;font-weight:700;color:#9898a0}.hero-stage{font-size:10px;background:#eeebfa;color:#6757c8;border-radius:99px;padding:6px 11px;font-weight:600}
.stats-grid{display:grid;grid-template-columns:.86fr 1.16fr 1.8fr;gap:12px}.stat-card{background:#fffefa;border:1px solid #ebe8e1;border-radius:15px;padding:14px 17px 12px;min-height:99px;box-shadow:0 3px 12px #372d1107}.stat-label{font-size:10px;color:#888a93;font-weight:500}.stat-value{font-size:28px;font-weight:700;letter-spacing:-.045em;line-height:1.3;margin-top:2px}.stat-unit{font-size:13px;font-weight:500;margin-left:5px;letter-spacing:0;color:#777985}.stat-foot{font-size:9px;color:#a0a1a8}.stat-foot b{color:#7465c5;font-weight:600}.thickness-stat .stat-value{font-size:23px}.target-title,.target-foot{display:flex;justify-content:space-between;align-items:center}.target-title #progress-label{color:#6454c0;font-size:12px;font-weight:700}.target-name{font-size:17px;font-weight:700;letter-spacing:-.025em;margin-top:1px}.target-value{font-size:10px;color:#898a95;margin-top:1px}.progress-track{height:5px;border-radius:5px;background:#eeedf2;margin-top:9px;overflow:hidden}.progress-track>span{height:100%;width:0;display:block;border-radius:inherit;background:linear-gradient(90deg,#9f8ff2,#6757c8);transition:width .5s}.target-foot{font-size:9px;color:#999aa2;margin-top:5px}
.play-layout{display:grid;grid-template-columns:minmax(0,1.56fr) minmax(300px,.86fr);gap:17px;align-items:start}.paper-panel,.mission-card,.milestone-card,.record-card{background:#fffefa;border:1px solid #ebe8e1;border-radius:16px;box-shadow:0 4px 16px #372d1108}.paper-panel{padding:20px}.panel-heading,.section-heading{display:flex;align-items:center;justify-content:space-between}.panel-heading h1,.section-heading h2{font-size:17px;margin:4px 0 0;font-weight:700;letter-spacing:-.035em}.live-badge{font-size:9px;color:#777985;background:#f4f3ef;border-radius:99px;padding:7px 10px}.live-badge i{width:6px;height:6px}
.fold-controls{display:flex;align-items:center;gap:7px;margin:17px 0 12px;flex-wrap:wrap}.control-label{font-size:10px;color:#898a93;margin-right:3px}.direction-button{font-size:10px;color:#757783;border:1px solid #e9e7e2;background:#fffefa;border-radius:8px;padding:7px 10px;cursor:pointer;transition:.2s}.direction-button:hover{border-color:#c9c1f3}.direction-button.selected{background:#eeebfa;color:#5f50bb;border-color:#dbd5f7;font-weight:600}.fold-hint{font-size:9px;color:#92939b;margin-left:auto}
.paper-stage{height:300px;border-radius:12px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#fffefa 0,#f8f6f0 75%,#f4f1eb 100%);border:1px solid #f0ede6;touch-action:none;user-select:none}.stage-caption,.stage-bottom{position:absolute;z-index:2;left:14px;right:14px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.12em;color:#aaa9ae;pointer-events:none}.stage-caption{top:12px}.stage-caption span+span{letter-spacing:0}.stage-bottom{bottom:11px;letter-spacing:0;color:#aaa9ae;font-size:8px}.paper-stage canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.paper-stage canvas.dragging{cursor:grabbing}.stage-message{position:absolute;bottom:33px;left:0;right:0;text-align:center;font-size:10px;color:#9999a0;pointer-events:none;transition:opacity .2s}.stage-message.success{color:#6454c0;font-weight:700}.progression-note{display:flex;gap:9px;align-items:center;color:#898a93;font-size:9px;line-height:1.6;margin:13px 2px 0}.note-icon{color:#8b7be0;font-size:15px}
.side-panel{display:flex;flex-direction:column;gap:12px}.mission-card{padding:15px 17px;background:linear-gradient(135deg,#6757c8 0%,#5143aa 100%);color:white;border:0;min-height:141px;position:relative;overflow:hidden}.mission-card:after{content:"✦";position:absolute;right:19px;bottom:-28px;color:#ffffff0d;font-size:125px;line-height:1}.mission-top{display:flex;justify-content:space-between;align-items:center}.mission-card .eyebrow{color:#d3ccff}.mission-icon{font-size:19px}.mission-card h2{font-size:19px;margin:8px 0 3px;letter-spacing:-.03em}.mission-card p{font-size:10px;color:#e0dcff;margin:0;line-height:1.6;max-width:85%}.mission-divider{height:1px;background:#ffffff28;margin:11px 0 8px}.mission-metric{display:flex;justify-content:space-between;font-size:9px;color:#d5ceff}.mission-metric strong{color:white;font-size:10px}
.milestone-card,.record-card{padding:14px 16px}.section-heading h2{font-size:14px;margin-top:3px}.text-button{border:0;background:none;padding:4px 0;color:#6a5ac8;font-size:9px;cursor:pointer}.text-button:hover{text-decoration:underline}.milestone-list{display:flex;flex-direction:column;margin:9px 0 0}.milestone-row{height:31px;display:flex;align-items:center;gap:9px;border-bottom:1px solid #f2f0eb;font-size:10px}.milestone-dot{width:20px;height:20px;border-radius:7px;background:#f3f1eb;display:grid;place-items:center;font-size:11px;flex:none}.milestone-row.done .milestone-dot{background:#edeafa;color:#6757c8}.milestone-row span:nth-child(2){flex:1;color:#60616a}.milestone-row:not(.done) span:nth-child(2){color:#9b9ca3}.milestone-row small{color:#9d9ea6;font-size:8px}.all-goals-button{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:none;color:#7668c4;font-size:9px;padding:10px 1px 0;cursor:pointer}
.record-card{padding-bottom:10px}.record-icon{font-size:16px}.record-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:11px 0}.record-grid div{background:#f7f5f0;border-radius:9px;padding:8px}.record-grid span{display:block;color:#94959c;font-size:8px}.record-grid strong{display:block;font-size:13px;margin-top:3px}.reset-button{font-size:9px;color:#a0a0a7;border:0;padding:3px 0;background:none;cursor:pointer}.reset-button:hover{color:#bb5959;text-decoration:underline}
footer{display:flex;justify-content:space-between;gap:10px;padding:18px 2px 0;color:#a1a1a7;font-size:9px}
.overlay{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:18px;background:#181724a8;backdrop-filter:blur(8px);overflow-y:auto}.overlay[hidden]{display:none}.event-backdrop{position:absolute;inset:0;background:#11121c66}.event-backdrop.moon-backdrop{background:#08112680}.event-card,.modal-card{width:min(500px,100%);background:#fffefa;border-radius:19px;padding:25px;position:relative;box-shadow:0 20px 90px #18162955;animation:card-in .35s cubic-bezier(.2,.8,.2,1)}@keyframes card-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.close-button{position:absolute;right:13px;top:13px;border:0;background:#ffffffbb;border-radius:50%;width:30px;height:30px;font-size:20px;cursor:pointer;z-index:3;color:#777}
.event-sky{height:150px;border-radius:13px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 58%,#7461c9 0,#342b64 47%,#171a32 100%);display:grid;place-items:center;margin-bottom:19px}.event-sky:before,.event-sky:after{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 10% 24%,#fff 99%,transparent),radial-gradient(1px 1px at 22% 67%,#ffffffcf 99%,transparent),radial-gradient(1.5px 1.5px at 77% 30%,#fff 99%,transparent),radial-gradient(1px 1px at 91% 71%,#ffffffcf 99%,transparent),radial-gradient(1px 1px at 67% 80%,#fff 99%,transparent),radial-gradient(1px 1px at 35% 14%,#ffffffcf 99%,transparent);opacity:.8}.event-sky:after{animation:twinkle 3s ease-in-out infinite alternate}.event-art{font-size:60px;position:relative;z-index:1;filter:drop-shadow(0 5px 23px #c8b7ff77);animation:float 3s ease-in-out infinite}.event-orbit{position:absolute;border:1px solid #ffffff27;width:185px;height:74px;border-radius:50%;transform:rotate(-24deg)}.orbit-two{width:240px;height:95px;transform:rotate(24deg);border-color:#ffffff16}@keyframes float{50%{transform:translateY(-8px)}}@keyframes twinkle{to{opacity:.35}}
.event-sky.scene-origin{background:radial-gradient(ellipse at 50% 62%,#f1cf9c 0,#967c76 45%,#433854 100%)}
.event-sky.scene-city{background:linear-gradient(180deg,#efb98f 0,#b46c7b 48%,#303354 100%)}
.event-sky.scene-mountain{background:linear-gradient(180deg,#92b9d4 0,#e2b1a1 55%,#34394e 100%)}
.event-sky.scene-solar{background:radial-gradient(ellipse at 50% 50%,#516caa 0,#27345f 48%,#13182d 100%)}
.event-sky.scene-stars{background:radial-gradient(ellipse at 53% 48%,#b26d91 0,#453368 44%,#151a32 100%)}
.event-sky.scene-galaxy{background:radial-gradient(ellipse at 50% 53%,#b29adc 0,#53579c 24%,#22274c 58%,#111525 100%)}
.event-sky.scene-space{background:radial-gradient(ellipse at 50% 70%,#273e69 0,#172849 50%,#111625 100%)}
.event-sky.scene-sun{background:radial-gradient(circle at 50% 52%,#fff1ae 0,#ffd66c 14%,#e88150 32%,#703a61 67%,#252546 100%)}
.event-sky.scene-universe{background:radial-gradient(ellipse at 50% 48%,#bf91d2 0,#634d97 25%,#302653 53%,#101321 100%)}
.event-sky.scene-universe .event-art{font-size:74px;animation:cosmic-zoom 4s ease-in-out infinite}
@keyframes cosmic-zoom{0%,100%{transform:scale(.86);filter:drop-shadow(0 5px 20px #c8b7ff77)}50%{transform:scale(1.14);filter:drop-shadow(0 4px 35px #e4caffbb)}}
.event-earth,.event-moon,.event-beam{display:none;position:absolute;z-index:1}
.event-sky.scene-moon{background:radial-gradient(ellipse at 50% 52%,#315781 0,#1a2d4c 48%,#101526 100%)}
.event-sky.scene-moon .event-art{display:none}
.event-sky.scene-moon .event-earth,.event-sky.scene-moon .event-moon,.event-sky.scene-moon .event-beam{display:block}
.event-earth{left:15%;top:50%;transform:translateY(-50%);font-size:43px;filter:drop-shadow(0 0 17px #68b6ff88)}
.event-moon{right:15%;top:50%;transform:translateY(-50%);font-size:50px;filter:drop-shadow(0 0 19px #eff5ffbb)}
.event-beam{height:2px;left:27%;right:27%;top:50%;background:linear-gradient(90deg,#67b8ff44,#fff8c8,#77c8ff66);box-shadow:0 0 14px #a4d4ff;transform:scaleX(0);transform-origin:left;animation:moonbeam 1.1s .25s ease-out forwards}
@keyframes moonbeam{to{transform:scaleX(1)}}
.event-procession{position:absolute;z-index:2;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:8px}
.event-procession span{font-size:18px;opacity:0;transform:translateY(10px) scale(.7);animation:arrive .5s ease-out forwards;filter:drop-shadow(0 0 9px #f0d7ff)}
@keyframes arrive{to{opacity:.9;transform:translateY(0) scale(1)}}
.event-card>.eyebrow,.modal-card>.eyebrow{color:#7565c4}.event-card h2,.modal-card h2{font-size:25px;letter-spacing:-.05em;margin:5px 0 4px}.event-description,.modal-description{font-size:11px;color:#777985;line-height:1.8;margin:0 0 16px}.comparison{display:flex;align-items:center;gap:12px;border:1px solid #eeece6;background:#faf9f5;border-radius:12px;padding:13px;margin-top:14px}.comparison>div:not(.times-value){min-width:0;flex:1}.comparison span{display:block;color:#92939b;font-size:8px}.comparison strong{display:block;font-size:12px;margin-top:5px;overflow-wrap:anywhere}.comparison .comparison-symbol{font-size:14px;color:#abaab1}.comparison .times-value{text-align:right;border-left:1px solid #e8e5de;padding-left:12px;color:#6757c8}.comparison .times-value strong{font-size:19px;color:#6757c8;white-space:nowrap}.comparison .times-value span{display:inline;color:#6757c8}
.event-footnote{min-height:20px;margin:10px 0 14px;color:#9999a1;font-size:9px;line-height:1.6}.primary-button{display:flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:10px;background:var(--purple);color:white;font-weight:600;width:100%;padding:12px;cursor:pointer;transition:.2s}.primary-button:hover{background:var(--purple-dark);transform:translateY(-1px)}.event-card.special .event-sky{height:205px}.event-card.final-event .event-sky{height:230px}
.clear-retry-button{width:100%;margin-top:8px}.clear-retry-button[hidden]{display:none}
.clear-settings-button{width:100%;margin-top:8px}.clear-settings-button[hidden]{display:none}.settings-note{grid-column:1/-1;color:#777782;font-size:12px;line-height:1.7}
.event-card.failure-event{border-top:4px solid #df9d70}.event-card.failure-event>.eyebrow{color:#ba805d}.event-card.failure-event .event-sky{height:120px;background:radial-gradient(ellipse at 50% 55%,#eee6d9 0,#dad5d1 60%,#c9c7cc 100%)}.event-card.failure-event .event-art{filter:drop-shadow(0 4px 13px #8e756855);animation:float 2.5s ease-in-out infinite}.event-card.failure-event .event-footnote{padding:10px 12px;margin:8px 0 14px;background:#f8f3eb;border-left:3px solid #d9a27b;border-radius:3px 8px 8px 3px;color:#766454;font-size:11px;font-weight:600}.event-card.failure-event .comparison .times-value{color:#a07859}.event-card.failure-event .comparison .times-value strong,.event-card.failure-event .comparison .times-value span{color:#a07859}
.modal-card{width:min(720px,100%);max-height:min(88vh,800px);overflow-y:auto;padding:25px}.modal-card h2{font-size:22px}.modal-description{margin-bottom:13px}.atlas-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.atlas-item{min-height:119px;border:1px solid #ebe8e1;border-radius:11px;padding:10px;background:#fffefa;position:relative;overflow:hidden}.atlas-item.locked{background:#f6f4ef}.atlas-art{font-size:26px;filter:drop-shadow(0 3px 7px #554c8b22)}.atlas-item.locked .atlas-art{filter:grayscale(1);opacity:.38}.atlas-state{position:absolute;right:9px;top:9px;color:#6757c8;font-size:8px}.atlas-item h3{font-size:11px;margin:6px 0 2px}.atlas-item p{font-size:8px;color:#898a93;margin:3px 0;line-height:1.55}.atlas-item .atlas-distance{font-weight:600;color:#696b74}.atlas-kind{font-size:7px;color:#a09fa6}.modal-actions{display:flex;gap:8px;margin-top:16px}.modal-actions button{flex:1}.secondary-button{padding:11px;border:1px solid #e8e5de;border-radius:9px;background:#fffefa;cursor:pointer;font-size:10px}.secondary-button:hover{background:#f5f2ec}
.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:20;border-radius:10px;background:#282735;color:white;padding:10px 16px;font-size:10px;box-shadow:0 6px 24px #17162125;transition:.25s;max-width:calc(100vw - 30px)}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:780px){.app{padding:0 20px 24px}.play-layout{grid-template-columns:minmax(0,1.2fr) minmax(265px,.9fr);gap:12px}.paper-panel{padding:15px}.stat-card{padding:12px}.stats-grid{grid-template-columns:.8fr 1fr 1.55fr}.stat-value{font-size:24px}.target-name{font-size:14px}.fold-hint{width:100%;margin:2px 0 0}.atlas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.app{padding:0 14px 22px}.topbar{height:64px}.hero{padding:20px 0 18px}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{min-height:83px;padding:10px 12px}.target-stat{grid-column:1/-1;min-height:104px}.stat-value{font-size:24px}.thickness-stat .stat-value{font-size:20px}.play-layout{grid-template-columns:1fr;gap:12px}.paper-panel{padding:14px}.paper-stage{height:300px}.side-panel{display:grid;grid-template-columns:1fr}.mission-card{min-height:125px}.fold-controls{gap:6px}.fold-hint{font-size:8px}.panel-heading h1{font-size:16px}.mission-card h2{font-size:18px}footer{flex-direction:column;gap:5px}.saved-indicator{font-size:9px}.atlas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card{padding:19px}.event-sky{height:125px}.event-card h2{font-size:22px}.comparison{gap:7px;padding:10px}.comparison strong{font-size:10px}.comparison .times-value{padding-left:8px}.comparison .times-value strong{font-size:16px}}
@media(max-width:360px){.app{padding-left:10px;padding-right:10px}.fold-controls{gap:5px}.direction-button{padding:7px;font-size:9px}.comparison{gap:5px}.comparison .times-value{padding-left:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.share-row{display:flex;flex-direction:column;gap:8px;margin:14px 0 12px;align-items:stretch}
.share-label{font-size:10px;letter-spacing:.08em;color:var(--muted);font-weight:600;text-align:center}
.share-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.share-button{flex:1 1 0;min-width:84px;font-weight:600;color:var(--ink);font-family:inherit}
.share-button[hidden]{display:none}
.share-button:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
