:root{--cream:#fff8e9;--paper:#fffdf7;--ink:#17274a;--muted:#647291;--blue:#54c9ff;--blue-deep:#2378d7;--peach:#ff8d6b;--grape:#8f73ff;--lime:#b8df75;--yellow:#ffd75d;--line:#d8e2ec;--shadow:0 18px 50px #294c7a21;color:var(--ink);background:var(--cream);font-synthesis:none;font-family:Nunito,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--cream)}body{background:var(--cream);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh;overflow:hidden}.page{width:min(100%,520px);margin:0 auto;padding:0 18px 40px;position:relative}.brand-bar{justify-content:space-between;align-items:center;padding:18px 0 10px;display:flex}.brand{letter-spacing:.02em;align-items:center;gap:9px;font-weight:900;display:flex}.brand-icon{border:2px solid var(--ink);background:var(--yellow);width:36px;height:36px;box-shadow:3px 3px 0 var(--ink);border-radius:11px 11px 14px 14px;place-items:center;display:grid;transform:rotate(-2deg)}.brand-small{color:var(--muted);letter-spacing:.12em;font-size:11px;font-weight:800}.mini-ticket{border:1.5px dashed var(--ink);background:var(--paper);border-radius:8px;padding:7px 9px;font-size:11px;font-weight:800;transform:rotate(2deg)}.hero{text-align:center;padding:22px 0 8px}.sticker{border:2px solid var(--ink);background:var(--lime);box-shadow:3px 3px 0 var(--ink);border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:900;display:inline-flex;transform:rotate(-1.5deg)}.hero h1{letter-spacing:-.055em;max-width:430px;margin:23px auto 12px;font-size:clamp(34px,10vw,52px);font-weight:950;line-height:1.08}.hero h1 em{color:var(--blue-deep);background:linear-gradient(#0000 64%,#54c9ff57 0);font-style:normal}.hero-sub{max-width:390px;color:var(--muted);margin:0 auto;font-size:15px;line-height:1.8}.battery-scene{width:290px;height:210px;margin:25px auto 23px;position:relative}.battery{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 9px 0 var(--ink);border-radius:28px;align-items:flex-end;gap:6px;padding:14px;display:flex;position:absolute;inset:18px 38px 28px}.battery:after{content:"";border:3px solid var(--ink);background:var(--yellow);border-left:0;border-radius:0 9px 9px 0;width:14px;height:44px;position:absolute;top:57px;right:-17px}.cell{border:2px solid var(--ink);background:var(--blue);border-radius:12px;flex:1;height:34%;animation:.8s both charge}.cell:nth-child(2){background:var(--lime);height:54%;animation-delay:.12s}.cell:nth-child(3){background:var(--yellow);height:76%;animation-delay:.24s}.cell:nth-child(4){background:var(--peach);height:92%;animation-delay:.36s}.battery-face{text-align:center;font-size:14px;font-weight:950;position:absolute;inset:auto 0 26px}.float-label{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:var(--paper);border-radius:14px;padding:8px 11px;font-size:12px;font-weight:900;position:absolute}.float-label.a{background:var(--grape);color:#fff;top:0;left:0;transform:rotate(-8deg)}.float-label.b{background:var(--peach);bottom:0;right:0;transform:rotate(6deg)}.primary-btn,.secondary-btn{border:2px solid var(--ink);cursor:pointer;border-radius:18px;width:100%;padding:16px 20px;font-weight:950;transition:transform .15s,box-shadow .15s}.primary-btn{background:var(--blue);box-shadow:5px 6px 0 var(--ink);font-size:17px}.primary-btn:hover{box-shadow:7px 8px 0 var(--ink);transform:translate(-1px,-1px)}.primary-btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(4px,5px)}.primary-btn:disabled{opacity:.55;cursor:wait}.secondary-btn{background:var(--paper);box-shadow:3px 4px 0 var(--ink);font-size:14px}.feature-shelf{border:2px solid var(--ink);background:var(--paper);box-shadow:5px 6px 0 var(--ink);border-radius:20px;grid-template-columns:repeat(3,1fr);margin:28px 0 10px;display:grid;overflow:hidden}.feature{text-align:center;border-right:1.5px dashed var(--line);padding:16px 8px}.feature:last-child{border:0}.feature b{font-size:18px;display:block}.feature span{color:var(--muted);margin-top:4px;font-size:10px;display:block}.fineprint{color:#8a91a5;text-align:center;margin:18px 0 0;font-size:11px;line-height:1.65}.quiz-head{z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fff8e9eb;padding:14px 0 12px;position:sticky;top:0}.progress-row{justify-content:space-between;align-items:end;font-size:13px;font-weight:900;display:flex}.progress-battery{border:2px solid var(--ink);background:var(--paper);border-radius:7px;height:16px;margin-top:9px;padding:2px}.progress-fill{background:repeating-linear-gradient(90deg,var(--blue) 0 16px,#fff 16px 19px);border-radius:4px;height:100%;transition:width .32s}.question-card{border:2px solid var(--ink);background:var(--paper);box-shadow:7px 8px 0 var(--ink);border-radius:26px 26px 16px;margin-top:24px;padding:28px 20px 22px;position:relative}.question-card:before{content:attr(data-no);border:2px solid var(--ink);background:var(--yellow);border-radius:50%;place-items:center;width:42px;height:42px;font-size:12px;font-weight:950;display:grid;position:absolute;top:-15px;right:18px;transform:rotate(6deg)}.question-label{letter-spacing:.12em;color:var(--blue-deep);font-size:11px;font-weight:900}.question-card h2{letter-spacing:-.025em;margin:12px 0 22px;font-size:24px;line-height:1.42}.answers{gap:11px;display:grid}.answer{text-align:left;border:1.8px solid var(--ink);cursor:pointer;background:#fff;border-radius:15px;width:100%;padding:14px 15px;font-size:14px;font-weight:750;line-height:1.55;position:relative}.answer:before{content:"";border:1.5px solid var(--ink);vertical-align:-2px;border-radius:50%;width:14px;height:14px;margin-right:10px;display:inline-block}.answer:hover,.answer.selected{background:#e8f8ff;transform:translate(2px)}.answer.selected:before{background:var(--blue);box-shadow:inset 0 0 0 3px #fff}.quiz-nav{grid-template-columns:1fr 2fr;gap:10px;margin-top:22px;display:grid}.gate{margin-top:28px}.receipt{background:var(--paper);border:2px solid var(--ink);box-shadow:7px 8px 0 var(--ink);padding:25px 20px 28px;position:relative}.receipt:before,.receipt:after{content:"";background:radial-gradient(circle at 5px 0, transparent 5px, var(--cream) 5.5px) repeat-x;background-size:18px 10px;height:10px;position:absolute;left:0;right:0}.receipt:before{top:-2px;transform:rotate(180deg)}.receipt:after{bottom:-2px}.receipt-kicker{color:var(--peach);letter-spacing:.1em;font-size:12px;font-weight:950}.receipt h2{margin:12px 0 8px;font-size:29px}.receipt p{color:var(--muted);font-size:14px;line-height:1.7}.unlock-list{grid-template-columns:1fr 1fr;gap:8px;margin:18px 0;display:grid}.unlock-list span{border:1.5px dashed var(--ink);background:#f7fbff;border-radius:10px;padding:10px;font-size:12px;font-weight:800}.code-input{border:2px solid var(--ink);text-transform:uppercase;letter-spacing:.08em;background:#fff;border-radius:14px;outline:none;width:100%;margin:5px 0 10px;padding:15px}.code-input:focus{box-shadow:0 0 0 4px #54c9ff4d}.gate-error{color:#c03b42;min-height:22px;font-size:12px;font-weight:800}.report-page{padding-bottom:100px}.report-cover{border:2px solid var(--ink);background:var(--blue);box-shadow:7px 8px 0 var(--ink);border-radius:28px;padding:24px 20px;position:relative;overflow:hidden}.report-cover:after{content:"";border:2px dashed #17274a59;border-radius:50%;width:150px;height:150px;position:absolute;top:-50px;right:-50px}.report-cover .eyebrow{letter-spacing:.15em;font-size:11px;font-weight:950}.score-battery{grid-template-columns:110px 1fr;align-items:center;gap:18px;margin:22px 0 18px;display:grid}.score-can{border:3px solid var(--ink);background:var(--paper);width:104px;height:146px;box-shadow:5px 5px 0 var(--ink);border-radius:20px 20px 26px 26px;place-items:center;display:grid;position:relative}.score-can:before{content:"";border:3px solid var(--ink);background:var(--yellow);border-radius:8px 8px 2px 2px;width:48px;height:14px;position:absolute;top:-10px}.score-number{font-size:45px;font-weight:950;line-height:1}.score-number small{font-size:14px}.type-title{letter-spacing:-.04em;margin:0 0 8px;font-size:30px;line-height:1.15}.type-copy{margin:0;font-size:14px;line-height:1.7}.tag-row{flex-wrap:wrap;gap:7px;display:flex}.tag{border:1.5px solid var(--ink);background:var(--paper);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}.report-module{border:1.8px solid var(--ink);background:var(--paper);border-radius:22px;margin-top:18px;padding:20px 17px;box-shadow:4px 5px #17274ae6}.module-kicker{color:var(--blue-deep);letter-spacing:.12em;font-size:10px;font-weight:950}.report-module h3{margin:8px 0 10px;font-size:21px;line-height:1.35}.report-module p{color:var(--muted);margin:8px 0;font-size:13px;line-height:1.75}.shelf-bars{gap:10px;margin-top:16px;display:grid}.shelf-row{grid-template-columns:80px 1fr 40px;align-items:center;gap:8px;font-size:11px;font-weight:900;display:grid}.shelf-track{border:1.5px solid var(--ink);background:#fff;border-radius:7px;height:18px;padding:2px}.shelf-fill{border-radius:4px;height:100%}.timeline{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:17px;display:grid;position:relative}.timeline:before{content:"";border-top:2px dashed var(--line);position:absolute;top:17px;left:10%;right:10%}.time-node{text-align:center;position:relative}.time-dot{border:2px solid var(--ink);background:var(--yellow);border-radius:50%;place-items:center;width:34px;height:34px;margin:0 auto 8px;font-size:10px;font-weight:950;display:grid}.time-node span{color:var(--muted);font-size:10px}.distance-map{width:230px;height:230px;margin:16px auto;position:relative}.ring{border:2px dashed var(--ink);background:#54c9ff1f;border-radius:50%;position:absolute;inset:0}.ring.r2{background:#b8df7540;inset:34px}.ring.r3{background:var(--yellow);place-items:center;font-size:12px;font-weight:950;display:grid;inset:76px}.ring-label{background:var(--paper);border:1px solid var(--ink);border-radius:6px;padding:3px 6px;font-size:9px;font-weight:900;position:absolute}.ring-label.l1{top:28px;right:2px}.ring-label.l2{bottom:65px;left:12px}.decision-path{gap:9px;margin-top:14px;display:grid}.decision-step{border:1.5px solid var(--ink);background:#f9fcff;border-radius:12px;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:10px;font-size:12px;font-weight:800;display:grid}.decision-step b{background:var(--grape);color:#fff;border-radius:9px;place-items:center;width:27px;height:27px;display:grid}.status-table{border-collapse:separate;border-spacing:0 8px;width:100%;font-size:12px}.status-table td{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f7f8fb;padding:10px}.status-table td:first-child{border-left:1px solid var(--line);border-radius:10px 0 0 10px;font-weight:900}.status-table td:last-child{border-right:1px solid var(--line);text-align:right;color:var(--blue-deep);border-radius:0 10px 10px 0;font-weight:950}.chips{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chip{border:1.5px solid var(--ink);background:var(--lime);border-radius:10px;padding:8px 10px;font-size:11px;font-weight:900}.advice-list{gap:9px;margin:12px 0 0;padding:0;list-style:none;display:grid}.advice-list li{border:1px dashed var(--line);border-radius:12px;padding:12px 12px 12px 40px;font-size:12px;line-height:1.65;position:relative}.advice-list li:before{content:"✓";background:var(--lime);border:1px solid var(--ink);border-radius:50%;place-items:center;width:20px;height:20px;font-weight:950;display:grid;position:absolute;top:12px;left:12px}.quote{border:2px solid var(--ink);background:#fff4dc;border-radius:14px;margin-top:12px;padding:15px;font-size:14px;font-weight:850;line-height:1.7}.copy-btn{border:1.5px solid var(--ink);background:var(--yellow);cursor:pointer;border-radius:999px;width:auto;margin-top:8px;padding:8px 12px;font-size:11px;font-weight:900}.week-grid{grid-template-columns:repeat(7,1fr);gap:5px;margin-top:13px;display:grid}.day{border:1.5px solid var(--ink);text-align:center;background:#fff;border-radius:9px;min-width:0;padding:8px 2px}.day b{font-size:10px;display:block}.day span{color:var(--muted);font-size:8px}.result-receipt{border:1.8px dashed var(--ink);background:#fffdf4;padding:16px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.8}.share-dock{z-index:8;width:min(100%,520px);padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--cream) 25%);position:fixed;bottom:0;left:50%;transform:translate(-50%)}.share-dock .primary-btn{background:var(--peach)}.share-panel{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#17274a80;align-items:end;display:grid;position:fixed;inset:0}.share-sheet{background:var(--cream);max-height:92vh;padding:18px 16px calc(24px + env(safe-area-inset-bottom));border:2px solid var(--ink);border-radius:28px 28px 0 0;overflow:auto}.share-head{justify-content:space-between;align-items:center;display:flex}.share-head h2{margin:0;font-size:20px}.icon-btn{border:1.5px solid var(--ink);cursor:pointer;background:#fff;border-radius:50%;width:38px;height:38px;font-weight:900}.card-strip{scroll-snap-type:x mandatory;gap:10px;padding:16px 2px 12px;display:flex;overflow-x:auto}.share-preview{aspect-ratio:3/4;border:2px solid var(--ink);object-fit:cover;scroll-snap-align:center;width:210px;box-shadow:4px 4px 0 var(--ink);background:#fff;border-radius:16px;flex:none}.share-note{border:1.5px dashed var(--ink);white-space:pre-wrap;background:#fff;border-radius:14px;max-height:125px;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.share-actions{grid-template-columns:1fr 2fr;gap:9px;margin-top:12px;display:grid}.share-actions .primary-btn,.share-actions .secondary-btn{padding:13px 8px;font-size:13px}.hidden{display:none!important}.toast{z-index:99;opacity:0;pointer-events:none;background:var(--ink);color:#fff;text-align:center;border-radius:999px;max-width:calc(100% - 40px);padding:10px 14px;font-size:12px;font-weight:800;transition:all .2s;position:fixed;bottom:92px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}@keyframes charge{0%{opacity:0;height:8%}}@media (width<=370px){.page{padding-left:14px;padding-right:14px}.hero h1{font-size:33px}.battery-scene{margin-left:-3px;transform:scale(.92)}.score-battery{grid-template-columns:96px 1fr;gap:12px}.score-can{width:92px;height:132px}.type-title{font-size:25px}.week-grid{grid-template-columns:repeat(4,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
