:root{--font-sans:"PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;--font-serif:"Songti SC", "STSong", "Times New Roman", serif;--ink:#34231f;--muted:#8e746a;--red:#a6403a;--red-dark:#7f2e2c;--blush:#dba7a0;--cream:#f8f1e7;--paper:#fffaf2;--gold:#b79459}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);font-family:var(--font-sans);background:radial-gradient(circle at 10% 10%,#a6403a14,#0000 24rem),radial-gradient(circle at 90% 80%,#b794591f,#0000 26rem),#f2e8dc}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.page-shell{place-items:center;min-height:100vh;padding:34px 20px;display:grid;position:relative;overflow:hidden}.paper-card{background-color:var(--paper);background-image:linear-gradient(90deg,#7d583706 50%,#0000 50%);background-size:5px 5px;border:1px solid #6f483929;position:relative;box-shadow:0 26px 80px #492b2229}.welcome-card{text-align:center;width:min(560px,100%);padding:48px 68px 34px}.welcome-card:before,.welcome-card:after{content:"";pointer-events:none;border:1px solid #a6403a2e;position:absolute;inset:10px}.welcome-card:after{border-color:#b7945926;inset:15px}.eyebrow,.review-title{color:var(--gold);letter-spacing:.24em;justify-content:center;align-items:center;gap:12px;font-size:11px;font-weight:700;display:flex}.eyebrow span,.review-title span{background:currentColor;width:42px;height:1px}.hero-mark{font-family:var(--font-serif), serif;color:var(--red);letter-spacing:-.08em;text-shadow:3px 3px 0 var(--paper), 5px 5px 0 #b7945966;margin:12px 0 0;font-size:clamp(108px,18vw,150px);font-weight:600;line-height:.9;transform:translate(-.04em)}.welcome-card h1{font-family:var(--font-serif), var(--font-sans), serif;letter-spacing:.12em;color:var(--red-dark);margin:4px 0 6px;font-size:clamp(28px,6vw,38px)}.subtitle{color:var(--muted);margin:0;font-size:14px}.tiny-heart{color:var(--red);margin:14px 0 10px;font-size:12px}.join-form{z-index:2;gap:14px;display:grid;position:relative}.join-form label{text-align:left;gap:7px;display:grid}.join-form label>span{letter-spacing:.08em;color:var(--muted);font-size:12px;font-weight:700}input{width:100%;color:var(--ink);background:#ffffffa3;border:1px solid #d8c8b8;border-radius:2px;outline:none;padding:12px 14px;transition:border-color .2s,box-shadow .2s}input:focus{border-color:var(--red);box-shadow:0 0 0 3px #a6403a1a}.code-input{text-align:center;font-family:var(--font-serif), serif;letter-spacing:.5em;padding-left:calc(14px + .5em);font-size:22px}.primary-button{background:var(--red);color:#fff;letter-spacing:.12em;border:0;min-height:48px;padding:0 24px;font-weight:700;transition:transform .2s,background .2s;box-shadow:0 7px 18px #7f2e2c33}.primary-button:hover:not(:disabled){background:var(--red-dark);transform:translateY(-2px)}.primary-button:disabled{opacity:.48}.form-error{color:var(--red);margin:-2px 0;font-size:13px}.anniversary-date{color:#b49f8e;letter-spacing:.18em;z-index:2;margin:23px 0 0;font-size:10px;position:relative}.decor>*{color:#a6403a54;position:absolute}.spark{font-family:serif;font-size:26px}.spark-one{top:19%;left:10%}.spark-two{bottom:16%;right:12%}.outline-heart{font-size:68px;transform:rotate(-12deg)}.heart-one{top:8%;right:7%}.heart-two{bottom:7%;left:4%;transform:rotate(18deg)}.waiting-card{text-align:center;width:min(520px,100%);padding:72px 44px 48px}.waiting-card h1{font-family:var(--font-serif), var(--font-sans), serif;color:var(--red-dark);margin:8px 0;font-size:34px}.waiting-card>p:not(.section-kicker){color:var(--muted);line-height:1.8}.section-kicker{color:var(--gold);letter-spacing:.22em;margin:0;font-size:11px;font-weight:800}.pulse-rings{border:1px solid #a6403a33;border-radius:50%;place-items:center;width:92px;height:92px;margin:auto;animation:2s infinite pulse;display:grid}.pulse-rings span{width:64px;height:64px;color:var(--red);background:#f3d9d3;border-radius:50%;place-items:center;font-size:24px;display:grid}@keyframes pulse{50%{box-shadow:0 0 0 14px #a6403a0d}}.waiting-dots{justify-content:center;gap:8px;margin:24px 0;display:flex}.waiting-dots i{background:var(--blush);border-radius:50%;width:7px;height:7px;animation:1.2s infinite bounce}.waiting-dots i:nth-child(2){animation-delay:.15s}.waiting-dots i:nth-child(3){animation-delay:.3s}@keyframes bounce{50%{background:var(--red);transform:translateY(-7px)}}.text-button{color:var(--muted);text-underline-offset:4px;background:0 0;border:0;text-decoration:underline}.game-page,.result-page{min-height:100vh}.game-header{z-index:5;background:#fffaf2eb;border-bottom:1px solid #6f483921;justify-content:space-between;align-items:center;height:78px;padding:0 clamp(20px,5vw,72px);display:flex;position:relative}.brand-small{color:var(--red);align-items:center;gap:9px;display:flex}.brand-small b{font:700 37px/1 var(--font-serif), serif}.brand-small span{font:700 8px/1.2 var(--font-sans);letter-spacing:.1em}.connection-pill{color:var(--muted);background:#f5e9df;border:1px solid #e5d4c5;border-radius:999px;padding:7px 14px;font-size:12px}.connection-pill i{background:#6e9a73;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.header-score{color:var(--muted);font-size:12px}.header-score b{color:var(--red);margin-left:5px;font-size:21px}.progress-track{background:#eaded1;height:3px;position:absolute;bottom:-1px;left:0;right:0}.progress-track span{background:var(--red);height:100%;transition:width .5s;display:block}.challenge-layout{align-content:start;justify-items:center;gap:24px;min-height:calc(100vh - 78px);padding:42px 20px 34px;display:grid}.round-heading{text-align:center;width:min(700px,100%);position:relative}.round-heading p{color:var(--red);letter-spacing:.16em;margin:0 0 5px;font-size:12px;font-weight:800}.round-heading h1{font-family:var(--font-serif), var(--font-sans), serif;color:var(--ink);margin:0 0 6px;font-size:clamp(26px,5vw,38px)}.round-heading span{color:var(--muted);font-size:12px}.photo-frame{background:#fffdf7;width:min(530px,88vw);padding:13px 13px 35px;position:relative;transform:rotate(-.7deg);box-shadow:0 18px 46px #462a202e}.photo-frame img{object-fit:cover;filter:saturate(.82)contrast(.96);background:#ddd0c2;width:100%;height:auto;display:block}.photo-frame p{font-family:var(--font-serif), var(--font-sans), serif;text-align:center;color:#7f655a;margin:13px 0 -19px;font-size:13px}.tape{background:#d7c3a4a6;width:70px;height:22px;position:absolute;top:3px}.tape-left{left:-28px;transform:rotate(-38deg)}.tape-right{right:-28px;transform:rotate(38deg)}.year-form{text-align:center;gap:11px;width:min(360px,100%);display:grid}.year-form label{color:var(--muted);font-size:12px}.year-input-wrap{justify-content:center;display:flex}.year-input{background:#ffffffa3;border:1px solid #d8c8b8;border-radius:2px;grid-template-columns:1fr 76px 1fr;align-items:center;width:100%;transition:border-color .2s,box-shadow .2s;display:grid}.year-input:focus-within{border-color:var(--red);box-shadow:0 0 0 3px #a6403a1a}.year-input span{color:var(--ink);font:27px var(--font-serif), serif;letter-spacing:.08em;justify-self:end}.year-input input{box-shadow:none;font-family:var(--font-serif), serif;text-align:left;letter-spacing:.16em;background:0 0;border:0;padding:12px 0;font-size:27px}.year-input input:focus{box-shadow:none;border:0}.year-input em{color:var(--muted);justify-self:start;margin-left:2px;font-style:normal}.answer-status{justify-content:center;gap:8px;display:flex}.answer-status span{color:#a59184;background:#ffffff80;border:1px solid #e0d3c7;border-radius:999px;padding:6px 10px;font-size:10px}.answer-status .done{color:#54785a;background:#eaf2e8;border-color:#cddfc9}.choice-layout{gap:34px}.choice-grid{grid-template-columns:1fr 1fr;gap:16px;width:min(780px,100%);display:grid}.choice-card{min-height:145px;color:var(--ink);background:#fffaf2c2;border:1px solid #dacabc;align-content:center;justify-items:center;gap:7px;transition:all .2s;display:grid;position:relative}.choice-card:hover:not(:disabled){border-color:var(--red);transform:translateY(-3px);box-shadow:0 12px 28px #5835271c}.choice-card.selected{border:2px solid var(--red);background:#f7e8e3}.choice-letter{font:700 13px var(--font-serif);color:var(--gold);position:absolute;top:10px;left:13px}.choice-icon{width:49px;height:49px;color:var(--red-dark);background:#efe1d5;border-radius:50%;place-items:center;font-family:serif;font-size:18px;display:grid}.choice-card b{font-size:15px}.reveal-panel{text-align:center;width:min(700px,100% - 40px);margin:clamp(60px,12vh,120px) auto;padding:58px 60px 45px}.reveal-badge{letter-spacing:.15em;border-radius:999px;width:fit-content;margin:0 auto 16px;padding:6px 14px;font-size:11px;font-weight:800}.reveal-badge.success{color:#517256;background:#e7f0e5}.reveal-badge.miss{color:var(--red);background:#f4e5df}.reveal-panel h1{font:600 clamp(25px, 5vw, 38px) var(--font-serif), var(--font-sans), serif;margin:0 0 10px}.correct-answer{color:var(--muted)}.correct-answer b{color:var(--red)}.answer-compare{grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin:28px 0 22px;display:grid}.answer-compare>div{background:#fff9;border:1px solid #e0d0c1;gap:6px;padding:20px 10px;display:grid}.answer-compare span{color:var(--muted);font-size:11px}.answer-compare b{font-size:18px}.answer-compare em{color:var(--red);font-style:normal;font-weight:800}.answer-compare>i{color:var(--gold);font-style:normal}.reveal-note{color:var(--muted)}.next-countdown{color:#ac9587;margin-top:25px;font-size:11px}.next-countdown span{vertical-align:middle;background:#e3d3c5;width:42px;height:2px;margin-right:7px;display:inline-block;position:relative;overflow:hidden}.next-countdown span:after{content:"";background:var(--red);height:100%;animation:3.2s linear countdown;display:block}@keyframes countdown{0%{width:0}to{width:100%}}.result-hero{text-align:center;padding:58px 20px 45px}.result-hero h1{font:600 clamp(28px, 6vw, 43px) var(--font-serif), var(--font-sans), serif;margin:7px 0 24px}.score-ring{width:180px;height:180px;color:var(--red);border:1px solid #a6403a4d;border-radius:50%;outline:8px solid #a6403a0f;place-content:center;margin:auto;display:grid}.score-ring strong{font:600 62px/.9 var(--font-serif), serif}.score-ring span{color:var(--muted);margin-top:8px;font-size:11px}.result-hero h2{color:var(--red-dark);font-family:var(--font-serif), var(--font-sans), serif;margin:24px 0 4px}.result-hero>p:last-child{color:var(--muted);font-size:13px}.review-section{background:#fffaf2b3;border-top:1px solid #dfd0c3;padding:42px 20px 60px}.review-title{margin-bottom:25px}.review-list{gap:10px;width:min(900px,100%);margin:auto;display:grid}.review-card{background:var(--paper);border:1px solid #e5d7ca;grid-template-columns:54px 1.4fr 1fr 50px;align-items:center;gap:18px;padding:17px 20px;display:grid}.review-number{font:500 26px var(--font-serif), serif;color:#ccb9a7}.review-question small{color:var(--red);letter-spacing:.12em;font-size:9px}.review-question h3{margin:4px 0;font-size:14px}.review-question>p{color:var(--muted);margin:0;font-size:11px}.review-answers p{grid-template-columns:70px 1fr;margin:4px 0;font-size:11px;display:grid}.review-answers span{color:var(--muted)}.review-answers b{font-size:12px}.review-points{color:#b9a99d;font-weight:800}.review-points.got{color:var(--red)}.restart-button{min-width:210px;margin:30px auto 0;display:block}footer{text-align:center;color:#a38e81;letter-spacing:.12em;background:#eadfd4;padding:22px;font-size:10px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2a1c1894;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:var(--paper);text-align:center;width:min(410px,100%);padding:38px;box-shadow:0 24px 80px #0000004d}.modal-card>span{color:var(--red);font-size:50px}.modal-card h2{font-family:var(--font-serif), var(--font-sans), serif;margin:5px}.modal-card p{color:var(--muted);font-size:13px;line-height:1.7}.modal-card button{min-width:160px;margin-top:10px}@media (max-width:640px){.welcome-card{padding:38px 34px 28px}.game-header{height:66px;padding:0 14px}.brand-small span{display:none}.brand-small b{font-size:30px}.connection-pill{white-space:nowrap;text-overflow:ellipsis;max-width:50vw;overflow:hidden}.challenge-layout{gap:20px;min-height:calc(100vh - 66px);padding-top:28px}.choice-grid{grid-template-columns:1fr;gap:10px}.choice-card{grid-template-columns:48px 1fr;justify-items:start;min-height:92px;padding:15px 24px}.choice-icon{grid-area:1/1}.choice-card b{grid-area:1/2}.choice-letter{top:5px;left:7px}.reveal-panel{padding:38px 20px 30px}.answer-compare{gap:8px}.answer-compare>div{padding:15px 5px}.answer-compare b{font-size:14px}.review-card{grid-template-columns:38px 1fr 42px;gap:10px}.review-answers{grid-column:2/4}.review-points{grid-area:1/3}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
