:root{--ink:#442c38;--pink:#f56f91;--rose:#a72f58;--paper:#fffaf8;--cream:#fff0e7;--line:#ead7d6}*{box-sizing:border-box}html{background:#f8e8e4;color:var(--ink);font-family:"Yu Gothic",Meiryo,sans-serif}body{margin:0;background:radial-gradient(circle at 80% 0,#ffd9df 0,transparent 32%),linear-gradient(180deg,#fff8f5,#f8e8e4);min-height:100vh}.top{max-width:1180px;margin:auto;padding:22px 24px 14px;display:flex;justify-content:space-between;align-items:center}.top small,.eyebrow,.section-head small,.work-card>small,.company-card>small{font:700 11px/1.2 Arial;letter-spacing:.18em;color:var(--rose)}h1{margin:4px 0;font-size:clamp(28px,5vw,48px)}h2{margin:.25em 0}.wallet{background:#fff;border:1px solid var(--line);border-radius:18px;padding:9px 16px;text-align:right;box-shadow:0 8px 24px #80404c18}.wallet span{font-size:11px;display:block}.wallet strong{font-size:20px}.tabs{position:sticky;top:0;z-index:20;display:flex;gap:6px;overflow:auto;padding:10px max(14px,calc((100vw - 1180px)/2));background:#fffdfbdc;backdrop-filter:blur(12px);border-block:1px solid var(--line)}button{font:inherit}.tabs button,.girl-card{border:0;background:transparent;color:var(--ink);cursor:pointer}.tabs button{white-space:nowrap;padding:10px 14px;border-radius:999px;font-weight:700}.tabs button.active{background:var(--ink);color:#fff}main{max-width:1180px;margin:auto;padding:28px 24px 80px}.view{display:none}.view.active{display:block}.hero{min-height:540px;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:linear-gradient(135deg,#fff 15%,#ffe6e7);border:1px solid var(--line);border-radius:32px;overflow:hidden;box-shadow:0 20px 60px #6b31411a}.hero-copy{padding:clamp(28px,6vw,72px);z-index:2}.hero-copy h2{font-size:clamp(30px,5vw,58px);line-height:1.2}.hero-copy p{line-height:1.9}.home-character{align-self:end;height:520px;display:grid;place-items:end center;overflow:hidden}.home-character img{height:100%;width:100%;object-fit:cover;object-position:center}.primary{border:0;border-radius:14px;background:linear-gradient(135deg,var(--pink),var(--rose));color:#fff;font-weight:800;padding:14px 24px;cursor:pointer;box-shadow:0 8px 22px #a72f5840}.girlfriend-line{display:flex;min-height:150px;align-items:flex-end;overflow:auto;padding:20px 10px 8px}.girlfriend-line button{flex:0 0 90px;height:120px;border:3px solid #fff;border-radius:45px 45px 15px 15px;background:var(--girl);overflow:hidden;margin-left:-16px;box-shadow:0 8px 20px #4b25362c;position:relative;cursor:pointer}.girlfriend-line img{width:100%;height:100%;object-fit:cover}.girlfriend-line span{position:absolute;bottom:0;left:0;right:0;background:#ffffffd9;font-size:10px;padding:3px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 15px}.quiz-layout{display:grid;grid-template-columns:minmax(300px,480px) 1fr;gap:28px;align-items:start}.selected-art{height:min(680px,72vh);border-radius:28px;overflow:hidden;background:#fff;border:1px solid var(--line)}.selected-art img{width:100%;height:100%;object-fit:cover}.quiz-panel{background:#fff;padding:32px;border-radius:28px;border:1px solid var(--line)}.answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answers button{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff8f5;cursor:pointer;font-weight:700}.answers button:hover{border-color:var(--pink);background:#fff0f3}.hint,.note{font-size:12px;color:#765d68}.joined{padding:20px;background:var(--cream);border-radius:18px}.girl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.girl-card{background:#fff;border:2px solid transparent;border-radius:18px;padding:10px;text-align:left;box-shadow:0 8px 24px #56253a10}.girl-card.selected{border-color:var(--pink)}.girl-card.locked{opacity:.48}.mini-art{height:190px;border-radius:12px;overflow:hidden;margin-bottom:8px}.mini-art img{width:100%;height:100%;object-fit:cover}.girl-card b,.girl-card span{display:block}.girl-card span{font-size:12px;color:var(--rose)}.art-pending{width:100%;height:100%;display:grid;place-content:center;text-align:center;background:linear-gradient(145deg,color-mix(in srgb,var(--girl),white 55%),#fff);color:#fff;text-shadow:0 1px 2px #0004}.art-pending b{font:800 42px Arial}.art-pending span,.art-pending small{display:block}.work-card,.company-card,.settings-card{max-width:720px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:28px;padding:clamp(24px,6vw,64px);text-align:center}.meter{height:52px;border-radius:16px;background:linear-gradient(90deg,#efc0c8,#ffe57c,#efc0c8);position:relative;margin:28px 0}.meter i{position:absolute;top:0;bottom:0;width:14px;background:#8cff95aa;transform:translateX(-50%)}.meter b{position:absolute;top:-6px;bottom:-6px;width:5px;background:#51283a;transform:translateX(-50%)}.done{display:flex;justify-content:space-between;padding:16px;background:#eef8ee;border-radius:14px}.price{font-size:20px;margin:25px}.company-card button:disabled{padding:14px 22px;border:0;border-radius:12px}.admin-link{font-size:12px;color:#72525e}#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);background:#35212b;color:#fff;padding:12px 20px;border-radius:999px;opacity:0;pointer-events:none;transition:.2s;z-index:50}#toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:760px){.top{padding:16px}.wallet strong{font-size:15px}main{padding:18px 12px 70px}.hero{grid-template-columns:1fr;min-height:0}.home-character{height:390px;order:-1}.hero-copy{padding:26px}.quiz-layout{grid-template-columns:1fr}.selected-art{height:520px}.answers{grid-template-columns:1fr}.girl-grid{grid-template-columns:repeat(2,1fr)}.mini-art{height:180px}}
.town-shell{border:1px solid var(--line);border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 20px 55px #5a2b3d1b}.town-head{height:64px;padding:10px 18px;display:flex;justify-content:space-between;align-items:center;background:#fffdf8}.town-head small,.town-head b{display:block}.town-head small{font:700 10px Arial;letter-spacing:.16em;color:var(--rose)}.town-head p{font-size:13px;margin:0;color:#73515f}.town-world{height:min(680px,72vh);min-height:520px;position:relative;overflow:hidden;background:#88af7d;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.town-world *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.town-world>canvas{width:100%;height:100%;display:block}.town-mini{position:absolute;right:14px;top:14px;background:#3c2b35df;border:2px solid #fff9;border-radius:12px;padding:5px;color:#fff;text-align:center;box-shadow:0 5px 20px #0004}.town-mini canvas{display:block;width:168px;height:104px;border-radius:7px}.town-mini small{font:700 10px Arial;letter-spacing:.14em}.move-help{position:absolute;left:14px;top:14px;background:#fffdeedf;padding:8px 11px;border-radius:10px;font-size:12px}.move-help kbd,#town-interact kbd{background:#fff;border:1px solid #cbb9b1;border-radius:4px;padding:2px 5px;color:#563545}#town-interact{position:absolute;left:50%;bottom:25px;transform:translateX(-50%);z-index:5;max-width:70%;white-space:nowrap}#town-interact.is-idle{background:#473640;color:#fff;opacity:.9;box-shadow:0 7px 20px #23151d66}#town-touch{display:none;position:absolute;left:12px;bottom:12px;text-align:center;color:#fff;font-size:10px;text-shadow:0 1px 4px #000}#town-joystick{width:132px;height:132px;border:3px solid #6b5159;border-radius:50%;position:relative;background:radial-gradient(circle,#f4d7d6b8 0 32%,#fff9efdc 34% 65%,#b27886da 67%);box-shadow:0 4px 0 #452c3566,inset 0 0 0 5px #fff8ed66;touch-action:none}#town-joystick span{position:absolute;color:#68424f;font:13px sans-serif;pointer-events:none}#town-joystick span:nth-child(1){top:8px;left:57px}#town-joystick span:nth-child(2){left:8px;top:55px}#town-joystick span:nth-child(3){bottom:8px;left:57px}#town-joystick span:nth-child(4){right:8px;top:55px}#town-joystick i{position:absolute;width:56px;height:56px;left:35px;top:35px;border:3px solid #fff0e7;border-radius:50%;background:radial-gradient(circle at 35% 25%,#f58baa,#9f3f67 72%);box-shadow:0 5px 10px #4e263866;pointer-events:none}
@media(max-width:760px){.town-head p{max-width:52%;font-size:11px}.town-world{height:calc(100dvh - 230px);min-height:510px}.town-mini{right:8px;top:8px;width:132px;padding:4px;transform:none}.town-mini canvas{width:120px;height:74px}.town-mini small{font-size:9px}.move-help{display:none}#town-touch{display:block}#town-interact{left:8px;right:8px;top:100px;bottom:auto;transform:none;max-width:none;min-height:48px;white-space:normal;font-size:12px;line-height:1.35;padding:9px 12px}#town-interact kbd{display:none}}
.quiz-meta{display:inline-block;margin:0 0 10px;padding:6px 10px;border-radius:999px;background:#fff0e7;color:#a72f58;font-size:12px;font-weight:700}
.player-picker[hidden]{display:none}.player-picker{position:fixed;inset:0;z-index:100;background:#2d2029f2;overflow:auto;padding:24px}.player-picker-panel{max-width:1180px;margin:auto;background:#fffaf8;border-radius:24px;padding:24px}.player-picker-panel>small{color:var(--rose);font-weight:800;letter-spacing:.16em}.player-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.player-grid button{border:2px solid #ead7d6;border-radius:14px;background:#fff;color:var(--ink);padding:8px;cursor:pointer}.player-grid button:hover{border-color:var(--pink);transform:translateY(-2px)}.player-grid img{display:block;width:100%;height:220px;object-fit:contain;background:#e9f5e9;border-radius:10px}.player-grid b,.player-grid span{display:block;margin-top:4px}.player-grid span{font-size:12px;color:var(--rose)}body.choosing-player{overflow:hidden}@media(max-width:760px){.player-picker{padding:8px}.player-picker-panel{padding:14px}.player-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.player-grid img{height:150px}.player-grid span{font-size:10px}}
.player-grid button.chosen{border-color:#ef557e;box-shadow:0 0 0 4px #f8b5c8,0 10px 26px #8e315438}
.name-field{display:grid;gap:7px;max-width:420px;margin:16px auto 20px;font-weight:800;text-align:left}.name-field input{font:inherit;font-size:16px;padding:13px 15px;border:2px solid #e8c5cf;border-radius:12px;background:#fff}.name-field input:focus{outline:3px solid #f7b1c4;border-color:#ed6f91}
.player-picker-panel>#player-start{display:block;margin:20px auto 0;min-width:280px}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.salary-card{background:linear-gradient(145deg,#fffaf0,#fff)}
.link-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.link-button,.casino-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:12px;padding:12px 16px;font-weight:800}.casino-button{background:#29233b;color:#ffe27a}.account-unlinked{padding:14px;border-radius:12px;background:#fff2f5;color:#70404d}.settings-card hr{border:0;border-top:1px solid #edd6dc;margin:24px 0}
@media(max-width:720px){.work-grid{grid-template-columns:1fr}.player-picker-panel>#player-start{min-width:0;width:100%}}
.flow-guide{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:center;margin:0 0 16px}.flow-guide button{border:1px solid var(--line);background:#fff;border-radius:15px;padding:10px;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer;color:var(--ink)}.flow-guide button b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--pink);color:#fff}.flow-guide button span{font-size:12px;font-weight:700;line-height:1.35}.flow-guide>i{font-size:26px;color:#b88b98}
.status-scene{min-height:560px;position:relative;overflow:hidden;border-radius:28px;background:radial-gradient(circle at 50% 80%,#fff8e5 0 18%,transparent 19%),linear-gradient(180deg,#f7d6dc,#f9eee7 62%,#cba67f 63%,#8c684d);border:1px solid var(--line)}.status-player{position:absolute;z-index:20;left:50%;bottom:10px;transform:translateX(-50%);width:230px;text-align:center}.status-player img{display:block;width:100%;height:330px;object-fit:contain;filter:drop-shadow(0 12px 12px #39202b55)}.status-player strong,.status-player span{display:block;background:#fffef0e8;padding:5px 10px}.status-girlfriends{position:absolute;inset:0}.status-girlfriends>span{position:absolute;left:calc(50% + var(--x)*72px);bottom:calc(185px + var(--row)*32px);transform:translateX(-50%) scale(calc(1 - var(--row)*.035));z-index:calc(15 - var(--row));width:92px;height:142px;border:2px solid #fff;border-radius:38px 38px 14px 14px;overflow:hidden;background:var(--girl);box-shadow:0 8px 15px #4d2b3955;cursor:pointer}.status-girlfriends>span img{width:100%;height:100%;object-fit:cover}.status-girlfriends>span span{position:absolute;inset:auto 0 0;background:#fffdeedc;font-size:9px;padding:3px}.empty-status{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.empty-status span{display:block;margin-top:8px}.status-panels{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.status-panels article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.district-row{display:flex;justify-content:space-between;padding:9px;border-bottom:1px solid #eee}.district-row.open span{color:#398657}.district-row.locked{color:#8a7880}
.dialogue-card{background:linear-gradient(145deg,#fff9f1,#fff);border:1px solid #ead7d6;border-radius:20px;padding:24px;box-shadow:inset 0 0 35px #f7dce333}.dialogue-card small{color:var(--rose);font-weight:800;letter-spacing:.1em}.dialogue-card p{min-height:90px;font-size:17px;line-height:1.9}.dialogue-dots{display:flex;gap:7px;margin:12px 0}.dialogue-dots i{width:9px;height:9px;border-radius:50%;background:#decbd0}.dialogue-dots i.on{background:var(--pink)}.stage-road{display:flex;gap:5px;margin:12px 0 20px}.stage-road i{flex:1;height:28px;display:grid;place-items:center;background:#eee;border-radius:7px;font:700 11px Arial}.stage-road i.on{background:linear-gradient(135deg,#f8a1b8,#c9577a);color:#fff}.talk-replay,.earn-link{border:0;background:transparent;color:var(--rose);text-decoration:underline;cursor:pointer}.money-goal{display:flex;justify-content:space-between;gap:12px;margin:14px 0;padding:12px;background:#fff;border-radius:12px}.locked-art{height:100%;display:grid;place-content:center;text-align:center;background:#ded8da;color:#76666c}.locked-art b{display:block}.light-toggle{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;text-align:left;align-items:center;padding:16px;background:#fff4f6;border-radius:14px}.light-toggle input{width:22px;height:22px}.light-toggle small{grid-column:2;color:#765d68}.light-mode .status-girlfriends>span{height:90px;border-radius:18px}.light-mode .mini-art{height:120px}
@media(max-width:760px){.flow-guide{grid-template-columns:1fr 1fr;gap:7px}.flow-guide>i{display:none}.status-scene{min-height:520px}.status-girlfriends>span{left:calc(50% + var(--mx)*58px);width:66px;height:105px;bottom:calc(170px + var(--mrow)*15px);transform:translateX(-50%) scale(calc(1 - var(--mrow)*.02))}.status-player{width:190px}.status-player img{height:280px}.status-panels{grid-template-columns:1fr}.dialogue-card p{font-size:15px}.money-goal{display:grid}.flow-guide button span{font-size:11px}}
.home-character img,.selected-art img,.mini-art img,.girlfriend-line img,.status-girlfriends>span img{object-fit:contain;object-position:center bottom}.selected-art{position:relative;background:linear-gradient(180deg,#fff,#fff5f1)}.selected-art>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none}.status-girlfriends>span{bottom:calc(170px + var(--row)*30px + var(--lift)*1px);transform:translateX(-50%) rotate(var(--rot)) scale(calc(1 - var(--row)*.035));transform-origin:center bottom}.quiz-ready{margin-top:18px;padding:24px;border-radius:18px;background:#fff4f6;text-align:center}.quiz-clock{display:grid;grid-template-columns:95px 1fr;gap:12px;align-items:center;margin:18px 0}.quiz-clock>b{font-variant-numeric:tabular-nums;color:var(--rose)}.quiz-clock>i{height:12px;overflow:hidden;border-radius:99px;background:#ead7d6}.quiz-clock span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#f56f91,#ffd35c);transition:width .1s linear}.answers button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:760px){.status-girlfriends>span{bottom:calc(155px + var(--mrow)*15px + var(--mlift)*1px);transform:translateX(-50%) rotate(var(--mrot)) scale(calc(1 - var(--mrow)*.02))}.quiz-clock{grid-template-columns:80px 1fr}}
.status-girlfriends>span,.light-mode .status-girlfriends>span{left:calc(50% + var(--x)*68px);width:82px;height:138px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;padding:0}.status-girlfriends>span img{display:block;width:100%;height:100%;filter:drop-shadow(0 7px 5px #3d253844)}@media(max-width:760px){.status-girlfriends>span,.light-mode .status-girlfriends>span{left:calc(50% + var(--mx)*52px);width:62px;height:102px}}
.top-actions{display:flex;align-items:center;gap:10px}.sound-toggle{border:1px solid #ead7d6;border-radius:999px;background:#fff;color:#6e354e;padding:11px 15px;font-weight:800;cursor:pointer;box-shadow:0 8px 24px #80404c18}.sound-toggle[aria-pressed="true"]{color:#fff;border-color:#a72f58;background:linear-gradient(135deg,#f56f91,#a72f58);box-shadow:0 0 0 4px #f56f9120,0 8px 24px #a72f5840}.primary{position:relative;overflow:hidden}.primary::after{content:"";position:absolute;inset:-80% -35%;background:linear-gradient(105deg,transparent 38%,#fff9 50%,transparent 62%);transform:translateX(-70%) rotate(8deg);animation:buttonShine 3.8s ease-in-out infinite}.quiz-clock span{box-shadow:0 0 16px #f56f91;animation:clockGlow .7s ease-in-out infinite alternate}.status-player::before{content:"";position:absolute;z-index:-1;left:50%;bottom:35px;width:320px;height:320px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,#fffbdcdd 0 22%,#ffbbd055 46%,transparent 70%);animation:aura 2.8s ease-in-out infinite}.dialogue-card{position:relative;overflow:hidden}.dialogue-card::after{content:"✦";position:absolute;right:18px;top:12px;color:#e89ab2;font-size:28px;text-shadow:-28px 22px #f3c767,16px 42px #edbfd0;animation:twinkle 1.8s ease-in-out infinite}.meter{box-shadow:inset 0 0 14px #fff,0 0 24px #f2bb73aa}.meter b{box-shadow:0 0 12px #fff,0 0 22px #ff537d}.joined{position:relative;box-shadow:inset 0 0 28px #ffc5d766}.joined::after{content:"♥  ✦  ♥";position:absolute;right:18px;top:13px;color:#d95e85;letter-spacing:.35em;animation:twinkle 1.5s ease-in-out infinite}#town-interact:not([hidden]){animation:interactPulse 1.2s ease-in-out infinite}.girl-card:hover{filter:brightness(1.05);transform:translateY(-3px)}.status-girlfriends>span:hover{filter:brightness(1.08)}
#fx-layer{position:fixed;inset:0;z-index:1000;pointer-events:none;overflow:hidden}.fx-particle{position:fixed;left:0;top:0;width:1em;height:1em;display:grid;place-items:center;color:#ff5f92;font-style:normal;font-weight:900;font-size:var(--size);text-shadow:0 0 8px #fff,0 0 15px currentColor;transform:translate(var(--x),var(--y));animation:fxBurst 1.25s cubic-bezier(.12,.68,.2,1) var(--delay) both}.fx-coin{color:#f6b817}.fx-gift{color:#ff4f88}.fx-correct{color:#f5a719}.fx-wrong{color:#a75867}.fx-join{color:#ef3f78}.fx-ring{position:fixed;width:30px;height:30px;margin:-15px;border:3px solid #ff6998;border-radius:50%;box-shadow:0 0 20px #fff,0 0 35px #ff5f92;animation:fxRing .85s ease-out both}.fx-ring.fx-coin{border-color:#ffd04f;box-shadow:0 0 20px #fff,0 0 40px #f3ad16}.fx-ring.fx-wrong{border-color:#9a5267;box-shadow:0 0 18px #fff,0 0 30px #9a5267}body.fx-flash::after{content:"";position:fixed;inset:0;z-index:999;pointer-events:none;background:radial-gradient(circle at center,#fff 0,#ffd9e48c 30%,transparent 70%);animation:screenFlash .55s ease-out both}
@keyframes buttonShine{0%,68%{transform:translateX(-75%) rotate(8deg)}86%,100%{transform:translateX(75%) rotate(8deg)}}@keyframes clockGlow{to{filter:brightness(1.2);box-shadow:0 0 24px #f56f91}}@keyframes aura{50%{transform:translateX(-50%) scale(1.08);opacity:.75}}@keyframes twinkle{50%{opacity:.35;transform:scale(.82) rotate(8deg)}}@keyframes interactPulse{50%{box-shadow:0 0 0 10px #fff5,0 10px 30px #a72f5870;transform:translateX(-50%) scale(1.035)}}@keyframes fxBurst{0%{opacity:0;transform:translate(var(--x),var(--y)) scale(.2) rotate(0)}18%{opacity:1}100%{opacity:0;transform:translate(calc(var(--x) + var(--dx)),calc(var(--y) + var(--dy))) scale(.85) rotate(var(--rot))}}@keyframes fxRing{0%{opacity:1;transform:scale(.2)}100%{opacity:0;transform:scale(15)}}@keyframes screenFlash{0%{opacity:.85}100%{opacity:0}}
@media(max-width:760px){.top-actions{gap:6px}.sound-toggle{padding:9px 11px;font-size:12px}.wallet{padding:8px 10px}.status-player::before{width:240px;height:240px}#town-interact:not([hidden]){animation:interactPulseMobile 1.2s ease-in-out infinite}}@keyframes interactPulseMobile{50%{box-shadow:0 0 0 8px #fff5,0 10px 28px #a72f5870;transform:scale(1.035)}}
@media(prefers-reduced-motion:reduce){.primary::after,.quiz-clock span,.status-player::before,.dialogue-card::after,.joined::after,#town-interact:not([hidden]){animation:none}.fx-particle{animation-duration:.45s}.fx-ring{animation-duration:.4s}}
.result-open{overflow:hidden}.quiz-result[hidden]{display:none}.quiz-result{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 50% 20%,#fff8e6f2,#5c183ad9);backdrop-filter:blur(8px)}.quiz-result-card{display:grid;grid-template-columns:minmax(250px,430px) minmax(280px,460px);align-items:center;width:min(920px,100%);max-height:calc(100dvh - 36px);overflow:hidden;border:2px solid #fff8;border-radius:30px;background:linear-gradient(145deg,#fff,#fff0f5);box-shadow:0 30px 100px #31091f88}.quiz-result-art{height:min(78dvh,690px);min-height:420px;background:radial-gradient(circle at 50% 35%,#fff 0 23%,#ffd7e4 58%,#ef9fba 100%)}.quiz-result-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}.quiz-result-copy{padding:42px}.quiz-result-copy small{color:#a72f58;font-weight:900;letter-spacing:.08em}.quiz-result-copy h2{margin:10px 0 16px;font-size:clamp(28px,4vw,48px);color:#74213f}.quiz-result-copy p{min-height:5em;line-height:1.9;color:#614653}.quiz-result-copy .primary{margin-top:18px;width:100%}@media(max-width:700px){.quiz-result{padding:10px}.quiz-result-card{grid-template-columns:1fr;grid-template-rows:minmax(260px,48dvh) auto;max-height:calc(100dvh - 20px);border-radius:22px}.quiz-result-art{height:auto;min-height:0}.quiz-result-copy{padding:22px}.quiz-result-copy h2{margin:6px 0 8px}.quiz-result-copy p{min-height:0;margin:0;line-height:1.65}.quiz-result-copy .primary{margin-top:13px}}

.primary::after{pointer-events:none}.view.active{animation:viewReveal .36s ease-out}@keyframes viewReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dialogue-speaker{display:flex;align-items:center;gap:12px;margin-bottom:12px}.dialogue-speaker img{flex:0 0 66px;width:66px;height:66px;object-fit:contain;object-position:center bottom;border-radius:50%;background:linear-gradient(145deg,#fff,#f8dce5);box-shadow:0 5px 16px #5d30412b}.dialogue-speaker h3{margin:3px 0 0}.dialogue-hero{border-color:#b8d7ed;background:linear-gradient(145deg,#f3faff,#fff)}.dialogue-hero .dialogue-speaker h3{color:#35698c}.dialogue-girl{border-color:#efc2d0;background:linear-gradient(145deg,#fff6f9,#fff)}.dialogue-girl .dialogue-speaker h3{color:#a72f58}.dialogue-narration{border-color:#e5d6ad;background:linear-gradient(145deg,#fffbed,#fff)}.dialogue-narration p{font-style:italic;color:#6f5a4c}.dialogue-narration .dialogue-speaker{display:block}.dialogue-card p{padding:14px 16px;border-radius:14px;background:#ffffffb8;box-shadow:inset 0 0 18px #fff}.dialogue-hero p{border-left:4px solid #6ca3c8}.dialogue-girl p{border-left:4px solid #e9779b}.dialogue-narration p{border-left:4px solid #d5b65d}@media(max-width:760px){.dialogue-speaker img{width:54px;height:54px;flex-basis:54px}.dialogue-card p{padding:11px 12px}}
.cp-wallet{background:linear-gradient(145deg,#fff8d8,#fff)}.cp-wallet strong{color:#9a6810}.quiz-head-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.energy-note,.discount-note{display:inline-block;padding:7px 11px;border-radius:999px;background:#fff;color:#9a4160;font-size:12px;font-weight:800}.discount-note{background:#fff3bd;color:#785512}.cp-lead{max-width:760px;line-height:1.8}.cp-charge{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:20px;border:1px solid #ead29c;border-radius:20px;background:linear-gradient(135deg,#fff9d9,#fff)}.cp-charge>div:first-child b,.cp-charge>div:first-child span{display:block}.cp-charge>div:first-child span{margin-top:5px;font-size:12px;color:#765d68}.cp-packages{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.cp-packages a{display:grid;min-width:82px;padding:9px 12px;border-radius:12px;background:#6e4d18;color:#fff;text-align:center;text-decoration:none;box-shadow:0 5px 14px #6e4d1830}.cp-packages small{color:#ffeeb6}.cp-shop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cp-shop article{display:flex;min-height:210px;flex-direction:column;justify-content:space-between;padding:24px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#fff,#fff7f1);box-shadow:0 10px 30px #61304412}.cp-shop article small{color:#9a6810;font-weight:900;letter-spacing:.08em}.cp-shop article h3{margin:7px 0}.cp-shop article p{line-height:1.65;color:#6f5862}.cp-shop article b{display:block;margin-top:10px;color:var(--rose)}.cp-shop .primary{margin-top:20px}.primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.cp-link-needed{grid-column:1/-1;padding:20px;border-radius:18px;background:#fff2f5;text-align:center}.cp-link-needed .link-button{margin-top:8px}.cp-shop+.note{display:block;margin-top:18px}@media(max-width:760px){.top{align-items:flex-start}.top-actions{flex-wrap:wrap;justify-content:flex-end}.cp-charge{align-items:stretch;flex-direction:column}.cp-packages{display:grid;grid-template-columns:repeat(3,1fr)}.cp-packages a{min-width:0}.cp-shop{grid-template-columns:1fr}.quiz-head-chips{max-width:150px}.section-head{align-items:flex-start}}
.site-home{display:inline-flex;align-items:center;justify-content:center;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--rose);font-size:12px;font-weight:800;text-decoration:none;box-shadow:0 8px 24px #80404c18}@media(max-width:760px){.site-home{order:4;padding:7px 10px}.top-actions{max-width:215px}.top h1{font-size:22px;white-space:nowrap}.top>div:first-child{min-width:135px}}

.game-tools{max-width:1180px;margin:10px auto 0;padding:0 24px;display:flex;justify-content:space-between;align-items:center;gap:12px}.game-balances{display:flex;gap:10px;align-items:center}.settings-card .sound-toggle{min-width:150px;margin:5px auto 0}.girl-card.unmet .mini-art{background:linear-gradient(145deg,#eadfe3,#cdbdc4)}.unmet-art{width:100%;height:100%;display:grid;place-content:center;text-align:center;color:#755c67}.unmet-art b{font:900 30px Arial}.unmet-art span{font-size:12px}.encounter-gate{padding:28px;text-align:center;border:1px dashed #d9b9c4;border-radius:18px;background:#fff8fa}.encounter-gate .primary{margin-top:10px}@media(max-width:760px){.game-tools{padding:8px 12px 0}.game-balances{gap:5px}.game-tools .wallet{padding:7px 9px}.game-tools .wallet strong{font-size:14px}.game-tools .site-home{font-size:12px;white-space:nowrap}}
.work-switch{display:flex;gap:8px;margin:0 0 14px;overflow-x:auto}.work-switch button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 15px;white-space:nowrap;font-weight:800;color:var(--ink);cursor:pointer}.work-switch button.active{background:var(--ink);color:#fff}.work-scene{display:none;position:relative;min-height:620px;border-radius:28px;overflow:hidden;border:1px solid var(--line);background:#4b3b39;box-shadow:0 20px 55px #5a2b3d24}.work-scene.active{display:block}.work-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.work-npc{position:absolute;z-index:2;right:4%;bottom:0;height:88%;max-width:45%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 16px 14px #25161d66)}.work-panel{position:absolute;z-index:3;left:5%;bottom:6%;width:min(520px,56%);padding:28px;border-radius:22px;background:#fffdf5ed;box-shadow:0 16px 50px #24141d55;backdrop-filter:blur(5px)}.work-panel>small{font:800 10px Arial;letter-spacing:.18em;color:var(--rose)}.work-panel h2{font-size:30px}.work-panel p{line-height:1.7}.premium-work .work-panel{background:#24151de8;color:#fff;border:1px solid #caa255}.premium-work .work-panel>small{color:#f2cc79}.premium-work .done{color:var(--ink)}
@media(max-width:760px){.work-scene{min-height:650px}.work-npc{height:62%;max-width:78%;right:-4%}.work-panel{left:4%;bottom:3%;width:92%;padding:20px}.work-panel h2{font-size:24px}.work-panel p{font-size:13px}.work-bg{object-position:center}.work-switch{padding-bottom:3px}}

.town-utility{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.town-utility button,.scene-back{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);padding:10px 16px;font-weight:800;cursor:pointer;box-shadow:0 6px 18px #61304416}.town-utility button:hover,.scene-back:hover{border-color:var(--pink);color:var(--rose)}.section-actions{display:flex;align-items:center;gap:10px}.settings-return{display:flex;justify-content:flex-end;max-width:720px;margin:0 auto 12px}.route-note{padding:12px 14px;border-radius:14px;background:#fff4d8;color:#6f5221;font-weight:700}.girl-card{cursor:default}.status-girlfriends>span{cursor:default}
@media(max-width:600px){.town-utility{justify-content:center}.town-utility button{flex:1}.section-actions{align-items:flex-end;flex-direction:column}.scene-back{padding:9px 13px}}

.start-gated{overflow:hidden}.start-gate[hidden]{display:none}.start-gate{position:fixed;z-index:1500;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 20%,#fff7e8,#efb4c8 48%,#613044)}.start-gate-panel{width:min(520px,100%);padding:36px;border:1px solid #fff9;border-radius:28px;background:#fffaf8;text-align:center;box-shadow:0 28px 90px #32112166}.start-gate-panel small{color:var(--rose);font-weight:900;letter-spacing:.18em}.start-gate-panel h2{margin:10px 0}.start-gate-panel p{color:#765d68}

@media(max-width:760px){
 body.town-active{height:100dvh;overflow:hidden;overscroll-behavior:none}
 body.town-active .game-tools{height:58px;margin:0 auto;padding:6px 10px;flex:0 0 58px}
 body.town-active main{height:calc(100dvh - 58px);padding:5px 7px calc(5px + env(safe-area-inset-bottom));overflow:hidden}
 body.town-active #view-home.active{display:flex;height:100%;min-height:0;flex-direction:column}
 body.town-active #view-home .town-shell{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;border-radius:18px}
 body.town-active #view-home .town-head{height:52px;min-height:52px;padding:6px 10px}
 body.town-active #view-home .town-head p{max-width:54%;font-size:10px;line-height:1.25}
 body.town-active #view-home .town-world{height:auto;min-height:0;flex:1 1 auto}
 body.town-active #view-home .town-utility{min-height:42px;flex:0 0 42px;gap:7px;margin:5px 0 0}
 body.town-active #view-home .town-utility button{padding:7px 10px}
}

@media(max-width:700px){
 .quiz-result{padding:6px 6px calc(6px + env(safe-area-inset-bottom));place-items:stretch}
 .quiz-result-card{width:100%;height:100%;max-height:none;grid-template-rows:minmax(220px,1fr) auto;align-items:stretch;border-radius:18px}
 .quiz-result-art{height:auto;min-height:0;overflow:hidden}
 .quiz-result-art img{width:100%;height:100%;object-fit:contain;object-position:center top}
 .quiz-result-copy{padding:14px 16px 15px}
 .quiz-result-copy small{font-size:10px}
 .quiz-result-copy h2{font-size:24px;line-height:1.2}
 .quiz-result-copy p{font-size:13px;line-height:1.45}
 .quiz-result-copy .primary{margin-top:9px;padding:12px 16px}
}

@media(max-width:760px){
 body.town-active{height:100vh;height:100svh}
 body.town-active .game-tools{height:52px;flex-basis:52px;padding:4px 9px}
 body.town-active main{height:calc(100vh - 52px);height:calc(100svh - 52px);padding-top:3px;padding-bottom:calc(3px + env(safe-area-inset-bottom))}
 body.town-active #view-home .town-head{height:46px;min-height:46px}
 body.town-active #view-home .town-utility{min-height:39px;flex-basis:39px;margin-top:3px}
 .town-mini{width:116px;padding:3px}
 .town-mini canvas{width:106px;height:65px}
 .town-mini small{display:none}
 #town-touch{left:10px;bottom:10px}
 #town-touch>small{display:none}
 #town-joystick{width:112px;height:112px}
 #town-joystick span:nth-child(1){top:6px;left:47px}
 #town-joystick span:nth-child(2){left:6px;top:45px}
 #town-joystick span:nth-child(3){bottom:6px;left:47px}
 #town-joystick span:nth-child(4){right:6px;top:45px}
 #town-joystick i{width:48px;height:48px;left:29px;top:29px}
 #town-interact{left:134px;right:10px;top:auto;bottom:20px;min-height:50px;max-width:none;padding:9px 10px;font-size:12px;line-height:1.3}
}

@media(max-width:760px){
 body.profile-active,body.dialogue-active,body.work-active{height:100vh;height:100svh;overflow:hidden;overscroll-behavior:none}
 body.profile-active .game-tools,body.dialogue-active .game-tools,body.work-active .game-tools{height:52px;margin:0 auto;padding:4px 9px}
 body.profile-active main,body.dialogue-active main,body.work-active main{height:calc(100vh - 52px);height:calc(100svh - 52px);padding:3px 7px calc(5px + env(safe-area-inset-bottom));overflow:hidden}
 body.profile-active #view-quiz.active,body.dialogue-active #view-quiz.active,body.work-active #view-work.active{display:flex;height:100%;min-height:0;flex-direction:column}
 body.profile-active #view-quiz>.section-head,body.dialogue-active #view-quiz>.section-head,body.work-active #view-work>.section-head{min-height:44px;flex:0 0 44px;align-items:center;margin:0 0 4px;padding:0 3px}
 body.profile-active #view-quiz>.section-head small,body.dialogue-active #view-quiz>.section-head small,body.work-active #view-work>.section-head small{display:none}
 body.profile-active #view-quiz>.section-head h2,body.dialogue-active #view-quiz>.section-head h2,body.work-active #view-work>.section-head h2{margin:0;font-size:17px;line-height:1.15}
 body.profile-active .quiz-head-chips,body.dialogue-active .quiz-head-chips{max-width:none;flex-wrap:nowrap}
 body.profile-active .quiz-head-chips .chip,body.dialogue-active .quiz-head-chips .chip{display:none}
 body.profile-active .quiz-head-chips .scene-back,body.dialogue-active .quiz-head-chips .scene-back{padding:7px 11px;font-size:12px}
 body.profile-active .quiz-layout,body.dialogue-active .quiz-layout{display:grid;min-height:0;flex:1 1 auto;grid-template-columns:1fr;gap:5px;align-items:stretch}
 body.profile-active .quiz-layout{grid-template-rows:minmax(230px,48%) minmax(0,52%)}
 body.dialogue-active .quiz-layout{grid-template-rows:minmax(220px,42%) minmax(0,58%)}
 body.profile-active .selected-art,body.dialogue-active .selected-art{height:auto;min-height:0;border-radius:16px}
 body.profile-active .selected-art>img,body.dialogue-active .selected-art>img{object-position:center top}
 body.profile-active .quiz-panel,body.dialogue-active .quiz-panel{display:flex;min-height:0;padding:8px;border-radius:16px}
 body.profile-active .quiz-panel{flex-direction:column}
 body.profile-active #girl-profile{min-height:0}
 body.profile-active #girl-profile .eyebrow{margin:0}
 body.profile-active #girl-profile h2{margin:2px 0;font-size:22px}
 body.profile-active #girl-profile p{margin:4px 0;font-size:12px;line-height:1.45}
 body.profile-active #quiz-box{margin-top:auto}
 body.profile-active .profile-intro p{margin:5px 0 9px;font-size:13px}
 body.profile-active .profile-intro .primary{width:100%;padding:12px}
 body.dialogue-active #girl-profile{display:none}
 body.dialogue-active #quiz-box{min-height:0;flex:1}
 body.dialogue-active .dialogue-card{display:grid;height:100%;min-height:0;grid-template-rows:auto minmax(0,1fr) auto auto;padding:10px 12px;border-radius:13px}
 body.dialogue-active .dialogue-speaker{gap:8px;margin-bottom:3px}
 body.dialogue-active .dialogue-speaker img{width:44px;height:44px;flex-basis:44px}
 body.dialogue-active .dialogue-speaker small{font-size:9px}
 body.dialogue-active .dialogue-speaker h3{font-size:16px}
 body.dialogue-active .dialogue-card p{min-height:0;margin:4px 0;padding:8px 10px;font-size:14px;line-height:1.45}
 body.dialogue-active .dialogue-dots{margin:4px 0 6px}
 body.dialogue-active #dialogue-next{padding:11px 14px}
 body.work-active .work-scene.active{display:block;min-height:0;flex:1 1 auto;border-radius:16px}
 body.work-active .work-npc{height:63%;max-width:72%;right:-3%;bottom:34%}
 body.work-active .work-panel{left:3%;bottom:2%;width:94%;max-height:47%;padding:13px 15px;border-radius:15px}
 body.work-active .work-panel h2{margin:3px 0;font-size:20px}
 body.work-active .work-panel p{margin:4px 0 8px;font-size:12px;line-height:1.4}
 body.work-active .work-panel .meter{height:38px;margin:10px 0}
 body.work-active .work-panel .primary{padding:11px 14px}
}

/* ===== v2 演出・操作性（2026-09 改修） ===== */
button.pressed,.link-button.pressed{transform:scale(.96)!important;transition:transform .08s}
.primary{transition:transform .15s,filter .15s,box-shadow .15s}.primary:not(:disabled):hover{filter:brightness(1.06);box-shadow:0 10px 26px #a72f5855}
.wallet strong.bump{animation:walletBump .5s ease-out}@keyframes walletBump{30%{transform:scale(1.18);color:#d4507c}}
.wallet strong{display:inline-block;font-variant-numeric:tabular-nums}
/* 汎用確認ダイアログ */
.ask-modal{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:18px;background:#2a1520a8;backdrop-filter:blur(4px);animation:fadeIn .18s ease-out}.ask-modal.closing{animation:fadeOut .18s ease-in forwards}
.ask-card{width:min(420px,100%);padding:26px 24px 20px;border-radius:24px;background:linear-gradient(160deg,#fff,#fff3f6);border:2px solid #fff;box-shadow:0 26px 70px #3b0f2466;text-align:center;animation:popIn .32s cubic-bezier(.2,1.4,.4,1)}.ask-card h3{margin:0 0 8px;color:#8f2a50;font-size:20px}.ask-card p{margin:0 0 18px;line-height:1.7;color:#5f4652}.ask-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}.ask-cancel{border:1px solid var(--line);background:#fff;border-radius:14px;padding:13px;font-weight:800;color:#6d4b5a;cursor:pointer}
@keyframes fadeIn{from{opacity:0}}@keyframes fadeOut{to{opacity:0}}@keyframes popIn{from{opacity:0;transform:scale(.85) translateY(10px)}}
/* 演出パーティクル追加 */
.fx-confetti{position:fixed;left:0;top:0;width:var(--w);height:var(--h);background:var(--c);border-radius:2px;transform:translate(var(--x),var(--y));animation:confetti 2.2s cubic-bezier(.15,.7,.3,1) var(--delay) both;box-shadow:0 0 6px #fff8}
@keyframes confetti{0%{opacity:0;transform:translate(var(--x),var(--y)) rotate(0)}10%{opacity:1}55%{transform:translate(calc(var(--x) + var(--dx)),calc(var(--y) + var(--dy))) rotate(calc(var(--rot)*.6))}100%{opacity:0;transform:translate(calc(var(--x) + var(--dx)*1.1),calc(var(--y) + var(--dy) + var(--fall))) rotate(var(--rot))}}
.fx-float{position:fixed;z-index:1001;transform:translate(-50%,-50%);font:900 22px/1 "Yu Gothic","Hiragino Sans",sans-serif;color:#fff;white-space:nowrap;text-shadow:0 2px 0 #b23a63,0 0 12px #ff7aa5,0 0 2px #000;animation:floatUp 1.3s cubic-bezier(.2,.8,.3,1) forwards;pointer-events:none}
.fx-float.gain{font-size:18px;color:#fff6c8;text-shadow:0 2px 0 #9a6810,0 0 10px #ffcf4d}.fx-float.good{font-size:26px}.fx-float.big{font-size:clamp(28px,6vw,52px);letter-spacing:.06em;animation-duration:2.2s}
.fx-float.grade-perfect{font-size:34px;color:#fff3a6;text-shadow:0 3px 0 #c26a00,0 0 18px #ffb300}.fx-float.grade-great{font-size:30px}.fx-float.grade-good{font-size:26px;color:#e8fff0;text-shadow:0 2px 0 #2c8a53,0 0 10px #62d68f}.fx-float.grade-miss{font-size:24px;color:#eee;text-shadow:0 2px 0 #6b5963}
@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-10%) scale(.6)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}30%{transform:translate(-50%,-70%) scale(1)}100%{opacity:0;transform:translate(-50%,-190%) scale(1)}}
body.fx-shake main{animation:shake .38s ease-in-out}@keyframes shake{20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(2px)}}
/* 会話：文字送り */
.dialogue-card{cursor:pointer;animation:cardIn .28s ease-out}@keyframes cardIn{from{opacity:.4;transform:translateY(6px)}}
.dlg-line{position:relative}.dlg-caret{display:inline-block;margin-left:6px;font-style:normal;font-size:12px;color:var(--pink);opacity:0}.dialogue-card.typed .dlg-caret{opacity:1;animation:caret .8s ease-in-out infinite}@keyframes caret{50%{transform:translateY(3px);opacity:.4}}
.dialogue-dots i{transition:background .2s,transform .2s}.dialogue-dots i.on{transform:scale(1.35)}.dialogue-dots i.read{background:#f3aac0}
.dlg-hint{display:block;margin-top:6px;text-align:center;font-size:10px!important;letter-spacing:.05em!important;color:#b0909d!important;font-weight:700!important}
.dialogue-speaker img{animation:portraitIn .35s cubic-bezier(.2,1.4,.4,1)}@keyframes portraitIn{from{transform:scale(.7) rotate(-6deg);opacity:0}}
.selected-art>img{transition:filter .3s,transform .3s;transform-origin:center bottom}.selected-art.girl-bounce>img{animation:girlHop .5s cubic-bezier(.2,1.5,.4,1)}.selected-art.hero-turn>img{filter:saturate(.85) brightness(.97)}
@keyframes girlHop{30%{transform:translateY(-10px) scale(1.015)}60%{transform:translateY(0) scale(.995,1.01)}}
.selected-art::after{content:"";position:absolute;inset:auto 0 0;height:30%;background:linear-gradient(0deg,#ffe3ec66,transparent);pointer-events:none}
@media(prefers-reduced-motion:no-preference){.selected-art>img{animation:idleBreath 4.5s ease-in-out infinite}.selected-art.girl-bounce>img{animation:girlHop .5s cubic-bezier(.2,1.5,.4,1),idleBreath 4.5s ease-in-out .5s infinite}}
@keyframes idleBreath{50%{transform:scale(1.008,1.012)}}
/* 好感度ハート */
.affection{display:inline-flex;gap:3px;vertical-align:middle}.affection i{font-style:normal;font-size:18px;line-height:1;color:#e3c5cf}.affection i.on{color:#f0507f;text-shadow:0 0 6px #ff9fbd}.affection i.on.gold{color:#e8a818;text-shadow:0 0 6px #ffd76a}.affection i.new{animation:heartPop .9s cubic-bezier(.2,1.6,.4,1) .35s both}
@keyframes heartPop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.7)}100%{transform:scale(1);opacity:1}}
.profile-affection{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 10px}.profile-affection small{font-weight:900;color:var(--rose);font-size:11px;letter-spacing:.12em}
/* クイズ */
.answers button{position:relative;transition:transform .12s,border-color .15s,background .15s,box-shadow .15s}.answers button:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 8px 18px #a72f5820}
.answers button kbd{position:absolute;left:10px;top:50%;transform:translateY(-50%);min-width:20px;padding:2px 5px;border-radius:6px;background:#fff;border:1px solid #e3c9d1;color:#b0798d;font:700 11px Arial}@media(hover:none){.answers button kbd{display:none}}
.answers button.chosen{opacity:1!important;border-color:var(--pink);background:#fff0f4}.answers button.is-correct{opacity:1!important;border-color:#3fbf7a;background:linear-gradient(135deg,#eafff2,#c9f6db);box-shadow:0 0 0 4px #7ee0a655,0 10px 24px #2f9f6040;animation:answerYes .5s cubic-bezier(.2,1.6,.4,1)}.answers button.is-wrong{opacity:1!important;border-color:#d05a6e;background:#ffe6ea;animation:answerNo .45s ease-in-out}
@keyframes answerYes{40%{transform:scale(1.07)}}@keyframes answerNo{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.quiz-clock span{background:linear-gradient(90deg,hsl(calc(var(--hue,40)*1deg - 10deg) 88% 62%),hsl(calc(var(--hue,40)*1deg + 10deg) 95% 65%))}
.quiz-urgent .quiz-clock>b{color:#e02d5b;animation:urgentText .5s ease-in-out infinite alternate}.quiz-urgent .quiz-clock>i{box-shadow:0 0 0 3px #ff9fb2,0 0 18px #ff5f7e}.quiz-urgent .quiz-panel{animation:urgentPanel 1s ease-in-out infinite}
@keyframes urgentText{to{transform:scale(1.12)}}@keyframes urgentPanel{0%,100%{box-shadow:0 0 0 0 #ff5f7e00}40%{box-shadow:0 0 0 4px #ff5f7e55,0 0 40px #ff5f7e44}}
body:has(.quiz-urgent.active)::before{content:"";position:fixed;inset:0;z-index:30;pointer-events:none;box-shadow:inset 0 0 90px #ff2f5a55;animation:urgentVignette 1s ease-in-out infinite}@keyframes urgentVignette{50%{opacity:.35}}
.streak-badge{display:inline-block;margin:0 0 8px;padding:6px 12px;border-radius:999px;background:linear-gradient(135deg,#ffd35c,#ff8f6b);color:#fff;font-weight:900;font-size:12px;letter-spacing:.04em;text-shadow:0 1px 1px #a0500066;box-shadow:0 6px 16px #ff8f6b55;animation:twinkle 1.6s ease-in-out infinite}
.quiz-ready{animation:cardIn .3s ease-out}
/* 結果画面 */
.quiz-result{animation:fadeIn .25s ease-out}.quiz-result-card{animation:popIn .45s cubic-bezier(.2,1.3,.4,1)}.quiz-result-art img{animation:resultArt .7s cubic-bezier(.2,1.3,.4,1) both}@keyframes resultArt{from{opacity:0;transform:translateY(30px) scale(.94)}}
.quiz-result-copy h2{animation:titlePop .6s cubic-bezier(.2,1.6,.4,1) .15s both}@keyframes titlePop{from{opacity:0;transform:scale(.6)}}
.quiz-result-card.is-bad .quiz-result-art{background:radial-gradient(circle at 50% 35%,#fff 0 23%,#e8e0f0 58%,#b9a8c9 100%)}.quiz-result-card.is-bad h2{color:#6a4a78}
.quiz-result-card.is-joined{border-color:#ffe08a;box-shadow:0 0 0 4px #ffd76a88,0 30px 100px #6b1e3f99}.quiz-result-card.is-joined .quiz-result-art{background:radial-gradient(circle at 50% 35%,#fffbe5 0 20%,#ffd7e4 55%,#ffb347 100%)}.quiz-result-card.is-joined h2{background:linear-gradient(90deg,#d63a73,#f29f1b,#d63a73);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:titlePop .6s cubic-bezier(.2,1.6,.4,1) .15s both,shimmer 2.2s linear infinite}
@keyframes shimmer{to{background-position:200% 0}}
#quiz-result-stage{margin:14px 0 4px;padding:12px 14px;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1px #f1d7df;text-align:center}#quiz-result-stage .affection i{font-size:22px}.result-stage-label{display:flex;justify-content:center;gap:10px;margin-bottom:6px;font-size:12px;font-weight:800;color:#8a5b6d}.result-stage-label b{color:var(--pink)}#quiz-result-stage .streak-badge{margin:8px 0 0}
.quiz-result-copy .result-secondary{display:block;width:100%;margin-top:8px;padding:11px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#6d4b5a;font-weight:800;cursor:pointer}
@media(max-width:700px){#quiz-result-stage{margin:8px 0 2px;padding:8px}#quiz-result-stage .affection i{font-size:17px}.quiz-result-copy .result-secondary{padding:9px;margin-top:6px}}
/* 日雇いミニゲーム */
.meter{overflow:visible}.meter.hit-perfect{animation:meterHit .5s ease-out;box-shadow:0 0 0 4px #ffe27a,0 0 40px #ffb300}.meter.hit-great{box-shadow:0 0 0 3px #ffc7d6,0 0 30px #ff6f9c}.meter.hit-miss{filter:grayscale(.6)}@keyframes meterHit{30%{transform:scale(1.04)}}
/* 音量スライダー */
.volume-rows{display:grid;gap:10px;max-width:360px;margin:16px auto 4px}.volume-row{display:grid;grid-template-columns:64px 1fr 36px;align-items:center;gap:10px;font-weight:800;font-size:13px;color:#6d4b5a}.volume-row input{accent-color:#e5588a;width:100%}.volume-row b{font-variant-numeric:tabular-nums;color:var(--rose);text-align:right}.volume-row input:disabled{opacity:.4}
/* 街 */
.town-world>canvas{touch-action:none}#town-interact{font-size:15px}
.view.active{animation:viewReveal .32s ease-out}
@media(prefers-reduced-motion:reduce){.fx-confetti,.fx-float{animation-duration:.4s}.selected-art>img,.affection i.new,.dialogue-card,.quiz-result-card,.quiz-result-art img,.quiz-result-copy h2,.streak-badge,.quiz-urgent .quiz-panel{animation:none!important}}
@media(max-width:760px){
 body:not(.dialogue-active):not(.profile-active) #view-quiz .section-head{align-items:center;margin-bottom:10px}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .section-head h2{font-size:19px;line-height:1.2}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .quiz-head-chips{max-width:190px;gap:5px}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .quiz-head-chips .chip{padding:5px 9px;font-size:11px}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .quiz-head-chips .scene-back{padding:6px 10px;font-size:12px}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .quiz-layout{gap:10px}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .selected-art{height:30vh;min-height:190px;border-radius:20px}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .selected-art>img{object-position:center 12%;object-fit:cover}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .quiz-panel{padding:16px;border-radius:20px}
 body:not(.dialogue-active):not(.profile-active) #view-quiz #girl-profile h2{font-size:20px;margin:2px 0}
 body:not(.dialogue-active):not(.profile-active) #view-quiz #girl-profile p{margin:3px 0;font-size:12px}
 body:not(.dialogue-active):not(.profile-active) #view-quiz .profile-detail{display:none}
 #view-quiz .quiz-ready{padding:16px;margin-top:10px}
 #view-quiz .answers button{padding:15px 12px;font-size:16px}
 #view-quiz .quiz-clock{margin:10px 0}
}
#toast{box-shadow:0 10px 30px #2a121e55;font-weight:700;max-width:min(92vw,520px);text-align:center;line-height:1.5}
@media(max-width:760px){#toast{top:58px;bottom:auto;transform:translate(-50%,-20px);font-size:13px;padding:10px 16px;border-radius:16px;white-space:normal}#toast.show{transform:translate(-50%,0)}#view-quiz .quiz-clock{grid-template-columns:104px 1fr}}
/* 会話：長文や低い画面でもボタンに隠れないように */
.dlg-line{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
@media(max-width:760px){
 body.dialogue-active .quiz-layout{grid-template-rows:minmax(110px,34%) minmax(0,1fr)}
 body.dialogue-active .dialogue-card{grid-template-rows:auto minmax(0,1fr) auto auto auto}
 body.dialogue-active .dialogue-card p.dlg-line{min-height:3em;overflow-y:auto}
 body.dialogue-active .dlg-hint{display:none}
}
@media(max-width:760px) and (max-height:700px){
 body.dialogue-active .quiz-layout{grid-template-rows:minmax(90px,26%) minmax(0,1fr)}
 body.dialogue-active .dialogue-speaker small{display:none}
 body.dialogue-active .dialogue-speaker img{width:36px;height:36px;flex-basis:36px}
 body.dialogue-active .dialogue-card::after{display:none}
 body.dialogue-active #dialogue-next{padding:10px 12px}
}
/* 日雇い：資材ボックス */
.work-pick{text-align:center;animation:cardIn .3s ease-out}.work-pick>p{margin:4px 0 10px;font-weight:800;color:#5a3b2a}
.work-pick-head{display:flex;align-items:center;justify-content:center;gap:10px}.work-pick-head b{font:900 22px/1 Arial,sans-serif;letter-spacing:.04em;color:#e04a7c}.work-pick-head b.grade-perfect{color:#e08a00;text-shadow:0 0 12px #ffd76a}.work-pick-head b.grade-miss{color:#8b7a82}.work-pick-head span{font-size:12px;font-weight:800;color:#7a5a3a}
.work-boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:6px 0 4px}
.work-box{position:relative;height:118px;border:0;background:none;cursor:pointer;padding:0;animation:boxIdle 1.6s ease-in-out calc(var(--i)*.18s) infinite}.work-box:disabled{cursor:default}
.box-body{position:absolute;left:8%;right:8%;bottom:6px;height:66px;border-radius:8px;background:repeating-linear-gradient(90deg,#c98a4b 0 14px,#b8773a 14px 16px),#c98a4b;box-shadow:inset 0 -8px 0 #9c6130,0 8px 14px #5b331a55;display:grid;place-items:center}
.box-body::before{content:"";position:absolute;left:0;right:0;top:40%;height:12px;background:#e9c35a;box-shadow:inset 0 -3px 0 #c89b2c}
.box-body i{position:relative;font:900 28px/1 Arial,sans-serif;font-style:normal;color:#fff;text-shadow:0 2px 0 #7a4417}
.box-lid{position:absolute;left:4%;right:4%;bottom:66px;height:22px;border-radius:7px 7px 3px 3px;background:#d99a58;box-shadow:inset 0 -5px 0 #b3733a;transform-origin:10% 100%;transition:transform .45s cubic-bezier(.2,1.5,.4,1)}
.box-prize{position:absolute;left:50%;bottom:52px;transform:translate(-50%,20px) scale(.4);opacity:0;white-space:nowrap;font:900 22px/1 "Yu Gothic","Hiragino Sans",sans-serif;color:#fff;padding:6px 10px;border-radius:999px;background:linear-gradient(135deg,#f56f91,#a72f58);box-shadow:0 6px 16px #a72f5866;transition:transform .5s cubic-bezier(.2,1.6,.4,1),opacity .3s}
.work-box:not(:disabled):hover .box-lid{transform:rotate(-8deg)}.work-box:not(:disabled):hover{animation-play-state:paused;transform:translateY(-4px)}
.work-box.picked{animation:boxShake .38s ease-in-out 1}
.work-box.open{animation:none}.work-box.open .box-lid{transform:rotate(-70deg) translateY(-6px)}.work-box.open .box-prize{opacity:1;transform:translate(-50%,-26px) scale(1)}
.work-box.other{filter:saturate(.5) brightness(.95);opacity:.75}.work-box.other .box-prize{background:#8b7a82;box-shadow:none;font-size:16px}
.work-box.mine.big .box-prize{background:linear-gradient(135deg,#ffb347,#e0701b)}.work-box.mine.jackpot .box-prize{background:linear-gradient(135deg,#ffe07a,#f29f1b,#ff6f9c);font-size:26px;animation:jackpot .8s ease-in-out infinite alternate}
.work-box.mine .box-body{box-shadow:inset 0 -8px 0 #9c6130,0 0 0 4px #fff,0 0 26px #ffd76a}
@keyframes boxIdle{50%{transform:translateY(-3px)}}@keyframes boxShake{25%{transform:rotate(-6deg)}50%{transform:rotate(5deg)}75%{transform:rotate(-3deg)}}@keyframes jackpot{to{transform:translate(-50%,-30px) scale(1.12)}}
@media(max-width:760px){.work-boxes{gap:6px}.work-box{height:98px}.box-body{height:54px}.box-lid{bottom:54px;height:18px}.box-prize{bottom:42px;font-size:16px;padding:5px 8px}.work-box.mine.jackpot .box-prize{font-size:18px}.work-pick-head b{font-size:18px}.work-pick>p{font-size:12px;margin:2px 0 6px}}
/* エグゼクティブ契約 */
.exec-card{margin-top:12px;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#2c1b26,#4a2638);color:#fff;border:1px solid #caa255;box-shadow:0 10px 26px #2a121e40;text-align:left}
.exec-card.active{background:linear-gradient(135deg,#3a2410,#6b4414);border-color:#ffd98a}
.exec-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.exec-head small{font:800 9px Arial;letter-spacing:.2em;color:#f2cc79}.exec-head b{font-size:17px;color:#ffe7ae}.exec-badge{margin-left:auto;padding:3px 9px;border-radius:999px;background:#ffd98a;color:#5a3a0a;font-size:11px;font-weight:900}
.exec-card p{margin:6px 0 10px!important;font-size:13px!important;line-height:1.6!important;color:#fbe9ef}.exec-card strong{color:#ffd98a}
.exec-actions{display:flex;gap:8px;flex-wrap:wrap}.exec-actions .primary{background:linear-gradient(135deg,#f2cc79,#c9912f);color:#3a2408;box-shadow:0 6px 16px #c9912f55;padding:11px 16px}.exec-charge{border:1px solid #f2cc79;background:transparent;color:#ffe7ae;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer}
.exec-note{display:block;margin-top:6px;font-size:11px;color:#e8cfa0}
.salary-claim.is-premium{background:linear-gradient(135deg,#f2cc79,#c9912f);color:#3a2408}
@media(max-width:760px){body.work-active .work-panel{max-height:62%;overflow-y:auto}.exec-card{padding:10px 12px;margin-top:8px}.exec-card p{font-size:12px!important;margin:4px 0 8px!important}.exec-head b{font-size:15px}}
.work-box.open .box-lid{transform:translate(18px,-34px) rotate(24deg);opacity:0;transition:transform .45s ease-out,opacity .45s ease-out}
.work-box.open .box-body::after{content:"";position:absolute;inset:-18px 10% auto;height:26px;border-radius:50%;background:radial-gradient(ellipse,#fff6c8cc,transparent 70%);animation:fadeIn .4s ease-out}
@media(max-width:760px){.work-box{height:104px}.work-box.open .box-prize{transform:translate(-50%,-18px) scale(1)}}
.work-box.open .box-body i{opacity:0;transition:opacity .2s}
.support-page{max-width:760px;margin:0 auto;padding:20px}.support-page label{display:grid;gap:6px;margin:14px 0}.support-page input,.support-page textarea{padding:12px;border:1px solid #d9c5cd;border-radius:10px;font:inherit}.support-page textarea{min-height:140px;resize:vertical}.support-messages{display:grid;gap:10px;margin:14px 0}.support-message{padding:12px;border-radius:12px;background:#f7edf1}.support-message.admin{background:#eef4ff}.support-message p{white-space:pre-wrap;margin:4px 0}.support-page form+form{margin-top:10px}.error{color:#a21e35}
.checkout-page{min-height:100%;background:linear-gradient(160deg,#fff7fb 0%,#f6edff 48%,#edf7ff 100%);overflow:auto}
.checkout-wrap{width:min(100% - 24px,680px);margin:0 auto;padding:20px 0 48px}
.checkout-back{display:inline-flex;margin:0 0 14px;color:#5d3972;font-weight:800}
.checkout-card{padding:clamp(20px,5vw,36px);border:1px solid #ead8f0;box-shadow:0 18px 50px #5d39721c}
.checkout-card h1{margin:.2rem 0 .7rem;font-size:clamp(2rem,8vw,3.3rem);line-height:1;color:#8c315f}
.checkout-kicker{margin:0;color:#745083;font-size:.82rem;font-weight:900;letter-spacing:.12em}
.checkout-total{display:flex;align-items:baseline;gap:9px;margin:16px 0;padding:14px 16px;border-radius:14px;background:#fff2f7}
.checkout-total span{margin-right:auto;font-weight:800}.checkout-total strong{font-size:1.65rem;color:#8c315f}.checkout-total small{font-weight:700}
.checkout-form{display:grid;gap:18px;margin-top:22px}.checkout-form fieldset{display:grid;gap:10px;margin:0;padding:0;border:0}.checkout-form legend,.checkout-label{margin-bottom:6px;font-weight:900;color:#3c2944}
.checkout-choice{display:flex;align-items:center;gap:12px;padding:14px;border:2px solid #e5d6eb;border-radius:14px;background:#fff;cursor:pointer}.checkout-choice:has(input:checked){border-color:#a74778;background:#fff7fb}.checkout-choice input{width:20px;height:20px}.checkout-choice span{display:grid;gap:2px}.checkout-choice small{color:#6f6474}
.checkout-form select{width:100%;min-height:48px;padding:10px 12px;border:2px solid #ded0e4;border-radius:12px;background:#fff;font:inherit}
.checkout-terms{display:flex;align-items:flex-start;gap:10px;padding:14px;border-radius:12px;background:#fff}.checkout-terms input{flex:0 0 auto;width:20px;height:20px;margin-top:2px}
.checkout-conditions{padding:14px 16px;border-radius:12px;background:#f6f3f8;color:#54495a;font-size:.88rem}.checkout-conditions p{margin:.35rem 0}
.checkout-submit{width:100%;min-height:54px;font-size:1rem;font-weight:900}.checkout-error{padding:12px 14px;border-radius:10px;background:#fff0f0;color:#a32335;font-weight:800}
@media(max-width:520px){.checkout-wrap{width:min(100% - 16px,680px);padding-top:12px}.checkout-card{padding:18px 15px}.checkout-choice{padding:12px}.checkout-total{padding:12px}}
