:root{color-scheme:light;--paper:#f6f5ef;--ink:#283b35;--muted:#6a756d;--line:#dcded4;--green:#365748;--gold:#ecb53d;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #a16b09;outline-offset:5px}[hidden]{display:none!important}.site-header{height:95px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6%;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:21px;font-weight:750;white-space:nowrap}.brand-icon{font-size:39px;color:var(--green);line-height:1}.brand-en{font-size:10px;letter-spacing:1.8px;margin-left:10px;font-weight:600}.header-note{font-size:12px;color:var(--muted);letter-spacing:2px}main{max-width:1080px;margin:auto;padding:0 32px}.intro{text-align:center;padding:61px 0 46px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:2.7px;color:var(--green)}h1{font-size:46px;line-height:1.5;letter-spacing:3px;margin:18px 0}p{line-height:1.9}.intro p{font-size:14px;color:var(--muted);margin-bottom:0}.level-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.level-heading h2{font-size:16px;margin:0}.level-heading>span{font-size:11px;color:var(--muted)}.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.level-card{background:#fffefa;border:1px solid var(--line);border-radius:14px;padding:24px;text-align:left;transition:transform .2s,border-color .2s,box-shadow .2s}.level-card:hover{transform:translateY(-4px);border-color:#7f9885;box-shadow:0 10px 25px #283b350a}.card-top{display:flex;justify-content:space-between;align-items:center}.level-number{font-size:11px;color:var(--muted);letter-spacing:2px}.difficulty-dots{color:#718a67;font-size:12px;letter-spacing:5px}.level-card h3{font-size:27px;margin:16px 0 5px}.card-caption{font-size:12px;color:var(--muted);margin:0}.mini-vessels{display:flex;align-items:flex-end;justify-content:center;gap:12px;height:127px;margin-bottom:22px}.mini-vessel{position:relative;isolation:isolate;width:48px;height:calc(90px * var(--vessel-ratio,1));border:2px solid #94a291;border-top:0;border-radius:0 0 9px 9px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;overflow:hidden}.mini-vessel:before{content:"";position:absolute;z-index:-1;bottom:0;left:0;right:0;height:var(--fill);background:#efc05a}.mini-vessel span{font-size:14px;font-weight:700}.mini-vessel small{font-size:9px;margin-left:3px}.card-target{border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700}.arrow{border-radius:50%;width:30px;height:30px;display:grid;place-items:center;background:#edf0e7;font-size:20px}.card-note{font-size:10px;color:var(--muted);margin:7px 0 0}.howto{margin:28px 0 55px;background:#ecefe5;border-radius:12px;padding:23px 25px;display:flex;gap:18px;align-items:center}.howto-mark{border:1px solid #7b8f78;border-radius:50%;height:25px;min-width:25px;text-align:center;font-size:16px}.howto h2{font-size:13px;margin:0 0 6px}.howto p{font-size:11px;color:#556450;margin:0}.howto-tag{font-size:10px;color:var(--muted);margin-left:auto;white-space:nowrap}footer{max-width:1016px;margin:auto;padding:24px 0 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:1px}.game-top{display:flex;justify-content:space-between;align-items:center;margin:28px 0}.text-button{border:0;background:transparent;padding:12px 3px;font-size:13px}.text-button:hover{text-decoration:underline}.badge{background:#e7edde;border-radius:30px;padding:7px 20px;font-size:12px}.game-heading{text-align:center;margin:26px 0}.game-heading h1{font-size:34px;margin:12px 0 6px}.game-heading p{font-size:13px;color:var(--muted);margin:0}.scorebar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 16px;margin-top:30px}.scorebar>div{font-size:14px}.scorebar strong{font-size:27px;margin-left:8px;font-variant-numeric:tabular-nums}.scorebar>span{font-size:12px;color:var(--muted)}.instruction{text-align:center;font-size:14px;min-height:27px;margin:25px 0 8px}.vessels{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:800px;margin:0 auto}.vessel-button{position:relative;border:2px solid transparent;border-radius:16px;background:transparent;padding:12px 12px 20px;transition:background .2s,border-color .2s}.vessel-button:hover:enabled{background:#eeeee5}.vessel-button.selected{border-color:var(--green);background:#e9eee3}.vessel-button:disabled{cursor:default}.vessel-letter{display:block;font-size:12px;letter-spacing:2px;color:var(--muted)}.vessel-space{height:280px;display:flex;align-items:flex-end;justify-content:center;margin:12px 0 20px}.vessel{position:relative;width:86%;max-width:170px;height:calc(260px * var(--vessel-ratio,1));border:3px solid #879788;border-top:0;border-radius:4px 4px 22px 22px;display:block;background:#fffdf8;overflow:hidden;box-shadow:0 6px 0 #dce0d4}.liquid{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(110deg,#f6ce6c,#e7a729);box-shadow:inset 0 4px #f9dc91;transition:height .55s ease}.glass-highlight{position:absolute;top:12px;left:12px;bottom:14px;width:7px;background:#ffffff60;border-radius:10px}.vessel-ticks{position:absolute;top:15px;bottom:15px;right:0;width:12px;background:repeating-linear-gradient(to top,transparent 0,transparent 29px,#58674940 29px,#58674940 31px)}.amount{display:block;white-space:nowrap}.amount strong{font-size:36px;font-variant-numeric:tabular-nums}.amount>span{font-size:18px;color:var(--muted)}.vessel-label{display:block;font-size:11px;margin-top:6px;color:var(--muted)}.selected .vessel-label{color:var(--green);font-weight:bold}.rule-note{text-align:center;font-size:11px;line-height:1.9;color:var(--muted);margin:20px 0 42px}.rule-note>span{font-size:20px;margin-right:8px}.mobile-break{display:none}.success{margin:20px auto 42px;padding:28px;text-align:center;border:1px solid #c3d0b5;background:#eaf0e2;border-radius:16px;animation:appear .4s ease}.success-symbol{font-size:35px;color:#a16b09}.success h2{font-size:30px;margin:4px 0 10px}.success p{margin:3px 0;font-size:14px}.success .perfect{font-weight:bold;color:#82600e;margin-top:12px}.success-actions{display:flex;justify-content:center;gap:12px;margin-top:22px}.primary-button,.secondary-button{padding:13px 24px;border:1px solid var(--green);border-radius:8px;font-size:13px}.primary-button{background:var(--green);color:white}.secondary-button{background:transparent}.primary-button:hover{background:#284535}.secondary-button:hover{background:#dce6d4}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1400px){main{max-width:1160px}.intro{padding-top:70px}h1{font-size:52px}}
@media(max-width:760px){.site-header{height:74px;padding:0 22px}.header-note,.brand-en{display:none}main{padding:0 20px}.intro{padding:38px 0 34px}h1{font-size:36px}.intro p{font-size:12px}.level-heading>span{display:none}.levels{gap:12px}.level-card{padding:17px 12px}.level-card h3{font-size:23px}.card-caption{font-size:10px}.mini-vessels{gap:5px}.mini-vessel{width:32px}.card-target{font-size:11px}.arrow{width:23px;height:23px;font-size:16px}.card-note{font-size:9px}.howto{padding:20px 17px;gap:12px}.howto-tag{display:none}footer{margin:0 20px;font-size:8px}.game-heading h1{font-size:28px;letter-spacing:1px}.vessels{gap:6px}.vessel-button{padding:10px 4px 16px}.vessel{width:90%}.vessel-space{height:260px}.amount strong{font-size:30px}.amount>span{font-size:14px}.instruction{font-size:12px}.scorebar{padding:8px 0}.scorebar>span{font-size:11px}.rule-note{font-size:10px}.mobile-break{display:block}}
@media(max-width:520px){.levels{grid-template-columns:1fr}.level-card{padding:20px;display:grid;grid-template-columns:1fr 135px;column-gap:12px}.card-top{grid-column:1}.level-card h3{margin:8px 0 4px}.card-caption{font-size:12px}.mini-vessels{grid-column:2;grid-row:1/4;height:106px;margin:0;gap:8px}.mini-vessel{width:35px}.card-target{grid-column:1/-1;margin-top:18px;padding-top:13px;font-size:13px}.card-note{grid-column:1/-1;font-size:10px}.level-heading{margin-bottom:14px}.howto{align-items:flex-start;margin-bottom:32px}.howto p br{display:none}.eyebrow{font-size:9px;letter-spacing:2px}.game-top{margin:16px 0}.game-heading{margin:24px 0}.game-heading h1{font-size:25px}.vessel-space{height:235px}.vessel{height:calc(260px * .83 * var(--vessel-ratio,1));border-radius:3px 3px 15px 15px}.glass-highlight{left:7px;width:5px}.amount strong{font-size:27px}.amount>span{font-size:12px}.vessel-label{font-size:10px}.instruction{min-height:46px;margin-bottom:0}.success{padding:24px 14px}.success-actions{gap:8px}.primary-button,.secondary-button{padding:13px 14px}.brand{font-size:19px}footer{letter-spacing:.5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Equal widths and proportional heights; flex-end aligns the vessel bottoms.
   Button areas stay large even for the smallest vessel. */
.mini-vessel{flex-shrink:0}

/* Native dialog keeps focus and pointer interaction inside the celebration. */
body.modal-open{overflow:hidden}
.success{position:fixed;inset:0;width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:36px 28px;overflow:auto;color:var(--ink);background:var(--paper);border:1px solid #bdcab5;border-radius:22px;box-shadow:0 24px 90px #152d3540;animation:none}
.success::backdrop{background:#20342bb3;backdrop-filter:blur(4px)}
.success[open]{animation:clear-appear .35s ease-out}
.success[open] h2{animation:clear-title .5s ease-out}
.success-symbol{display:block;font-size:42px;color:var(--green)}
.success h2{font-size:clamp(42px,10vw,64px);line-height:1.2;letter-spacing:5px;color:var(--green);margin:8px 0 20px}
.success #result-goal{font-size:clamp(15px,4vw,20px);font-weight:600}
.success #result{font-size:24px;font-weight:750;margin:12px 0 6px}
.success #result-shortest{font-size:14px;color:var(--muted)}
.success .perfect{margin:20px 0 0;padding:12px 8px;background:#f5e5ae;border:1px solid #ddbd60;border-radius:10px;font-size:clamp(12px,3.5vw,16px);color:#765510}
.success.is-perfect{border:2px solid #c7a54d;background:linear-gradient(155deg,#fffbed,var(--paper) 65%);box-shadow:0 0 0 6px #ecb53d26,0 24px 90px #152d3540}
.success.is-perfect h2,.success.is-perfect .success-symbol{color:#967019}
.success-actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:26px}
.success-actions button{min-height:54px;font-size:16px;padding:14px 20px}
@keyframes clear-appear{from{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes clear-title{0%{opacity:0;transform:scale(.8)}70%{opacity:1;transform:scale(1.06)}100%{transform:scale(1)}}
@media(max-height:600px){.success{padding:20px}.success-symbol{font-size:26px}.success h2{font-size:40px;margin:4px 0 12px}.success-actions{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.success[open],.success[open] h2{animation:none}}
