:root{--paper:#f6f3eb;--ink:#273e36;--muted:#626a60;--green:#315c4b;--line:#d9dbcc;--gold:#dbb25e;--white:#fffefa;--felt:#1c4939;--room-ink:#f3efd9;--room-muted:#d3ddc3;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;font-weight:600;min-height:44px;min-width:44px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);padding:10px 14px;cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){filter:brightness(.96)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b37825;outline-offset:3px}[hidden]{display:none!important}.shell{max-width:780px;margin:auto;padding:25px 24px 35px}header{display:flex;justify-content:space-between;align-items:center;gap:10px}.brand{font:600 25px Georgia,serif;color:var(--ink);text-decoration:none}.tag,.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#68745e}.intro{text-align:center;padding:30px 0 22px}.intro h1{font:400 43px Georgia,serif;margin:9px 0}.intro p{font-size:14px;color:var(--muted);margin:0}.panel{border:1px solid var(--line);background:var(--white);border-radius:20px;padding:22px;text-align:center;margin:12px 0}.panel h2{font:400 29px/1.2 Georgia,serif;margin:14px 0}.panel p{font-size:14px;line-height:1.65}.home-panel{padding:0;overflow:hidden}.hero-art{width:100%;height:230px;display:block;object-fit:cover;object-position:center}.home-copy{padding:24px}.home-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:18px 0}.home-actions button{font-size:13px}.primary{background:var(--green);color:white;border-color:var(--green)}.muted{font-size:12px!important;color:var(--muted);line-height:1.55}.progress{font-weight:600;margin:14px 0 8px}.play-top{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:13px}.play-top button{font-size:12px;flex-shrink:0;padding:9px 11px}#level{font-size:13px;line-height:1.5;text-align:center;max-width:320px}.water-stage{background:radial-gradient(ellipse at 50% 8%,#315b46,var(--felt));border:1px solid #143c2e;border-radius:18px;padding:18px 20px 20px;box-shadow:inset 0 0 0 4px #ffffff04;color:var(--room-ink)}.stats{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--room-muted);margin-bottom:16px}.tubes{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:16px 11px;position:relative;margin:8px auto 14px;max-width:650px;isolation:isolate}.tube{position:relative;z-index:1;flex:0 0 78px;width:78px;border:0;background:transparent;padding:6px 7px 10px;border-radius:12px;color:var(--room-ink)}.tube:hover:not(:disabled){background:#143c3066;filter:none}.tube:disabled{opacity:1}.tube.selected{outline:3px solid var(--gold);outline-offset:-2px;background:#123c31b3}.tube.hint-destination{outline:2px dashed var(--gold);outline-offset:-2px;background:#173e31}.tube:focus-visible{outline:3px solid #f4d891;outline-offset:2px}.tube-glass{height:180px;width:100%}.tube-label{display:block;margin-top:8px;font-size:13px;color:var(--room-muted);line-height:1.3}.tube-label small{display:block;font-size:10px;min-height:13px;margin-top:3px}.tube.selected .tube-label{color:var(--room-ink)}.sorted-tube .tube-label{color:#e2edbd}.water-raster-glass{position:relative;display:block;border:0;padding:0;background:transparent;box-shadow:none;border-radius:0;overflow:visible;isolation:isolate;container-type:inline-size}.water-raster-glass:before{content:"";position:absolute;inset:4% 7.5% 3%;border:1px solid #b5c8be88;border-radius:9% 9% 46% 46% / 3% 3% 16% 16%;pointer-events:none}.water-cavity{position:absolute;left:11.538462%;right:11.538462%;top:34.615385cqw;bottom:17.307692cqw;display:flex;flex-direction:column;overflow:hidden;border-radius:0 0 50% 50% / 0 0 38.461538cqw 38.461538cqw;pointer-events:none}.drop{position:relative;flex:0 0 25%;height:25%;min-height:0;background:var(--liquid);display:flex;justify-content:center;align-items:center;pointer-events:none}.water-symbol{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#fffef2e8;color:#26392f;font:bold 12px Arial,sans-serif;line-height:1;pointer-events:none}.drop.water-surface:before{content:"";position:absolute;top:0;left:1px;right:1px;height:3px;border-bottom:1px solid #fff9e56b;border-radius:0 0 50% 50%;pointer-events:none}.water-glass-material{position:absolute;inset:0;z-index:2;pointer-events:none;border-style:solid;border-color:transparent;border-width:26.923077cqw 0 67.948718cqw;border-image:url('./assets/glass-master-156.webp') 42 0 106 fill stretch}.hint{font-size:13px;line-height:1.6;text-align:center;color:var(--room-ink);min-height:42px;margin:15px 0}.toolbar{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.water-stage .toolbar{border-top:1px solid #bdcba331;padding-top:14px}.water-stage .toolbar button{background:#123b2f;color:var(--room-ink);border-color:#7e957466;min-width:85px;font-size:13px}.secondary-tools{display:flex;gap:8px;justify-content:space-between;margin:12px 0}.secondary-tools button{font-size:12px}#letters-legend{text-align:center}.success{background:#e9efdd}.success h2{font-size:26px}#historical{text-align:center}.storage-panel{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-top:16px}.storage-panel p{margin:4px 0}.storage-panel button{font-size:12px;margin:7px 3px 2px}.storage-panel.error,.notice{background:#fff0de}.notice{padding:12px;border-radius:12px;font-size:13px;line-height:1.55;margin-bottom:13px}#temporary-note{font-size:13px;color:#853f16}dialog{color:var(--ink);background:var(--white);border:1px solid #cbd5c8;border-radius:20px;padding:22px;width:min(600px,calc(100% - 24px));max-height:88dvh;overflow:auto}dialog::backdrop{background:#183e3277}dialog h2{font:400 25px Georgia,serif;margin:0}dialog p{font-size:14px;line-height:1.65}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head button{font-size:12px}.group-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.group-buttons button{font-size:12px;padding:10px 7px}.group-buttons button small{display:block;font-size:10px;font-weight:400;margin-top:4px}.group-buttons [aria-pressed=true]{background:#e5ecd9;border-color:#71936a}.levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:16px 0}.levels button{padding:8px 4px;min-height:55px;font-size:15px}.levels small{display:block;font-size:10px;font-weight:400;margin-top:4px}.levels .current{box-shadow:inset 0 0 0 2px #83936c}.levels .done{background:#e5eedb}.levels .chosen{outline:2px solid #b37825;outline-offset:1px;background:#f7e9c9}.pager{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.pager button{font-size:12px;padding:9px 10px}.jump{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:14px;font-size:13px}.jump input{width:64px;min-height:44px;font:inherit;padding:8px;border:1px solid #9cac91;border-radius:8px}.jump button{font-size:12px;padding:9px 11px}#page-notice{color:#963d2b;font-size:13px;min-height:20px;margin:6px 0}.selection-summary{border-top:1px solid var(--line);padding-top:10px}.selection-summary p{font-size:13px;margin:4px 0 10px}.selection-summary button{width:100%}ol{padding-left:23px;font-size:14px;line-height:1.7}li{margin:10px 0}footer{text-align:center;color:#747b6c;font-size:11px;line-height:1.6;margin-top:25px}footer a,a{color:inherit;overflow-wrap:anywhere}footer p{margin:7px 0}
@media(max-width:600px){.shell{padding:18px 14px 28px}.tag{font-size:8px;letter-spacing:1px}.intro{padding:24px 0 19px}.intro h1{font-size:37px}.hero-art{height:190px}.home-copy{padding:20px}.home-copy h2{font-size:26px}.water-stage{padding:14px 12px 16px}.tubes{max-width:330px;gap:12px 9px}.tube{flex-basis:68px;width:68px;padding:5px 6px 8px}.tube-glass{height:150px}.hint{font-size:12px;min-height:58px}.stats{font-size:11px;margin-bottom:10px}.play-top{gap:6px}#level{font-size:12px}.play-top button{padding:9px}.water-stage .toolbar button{min-width:75px}.levels{gap:7px}.brand{font-size:23px}}
@media(max-width:360px){.shell{padding:15px 10px 25px}.tag{font-size:7px;letter-spacing:.7px}.intro h1{font-size:35px}.intro p{font-size:12px}.home-copy{padding:17px}.hero-art{height:165px}.home-actions{gap:6px}.home-actions button{padding:9px 10px;font-size:12px}.play-top{gap:5px}#level{font-size:11px}.play-top button{font-size:11px;padding:9px 8px}.water-stage{padding:13px 10px 15px}.tubes{gap:10px 6px;max-width:270px}.tube{flex-basis:60px;width:60px;padding:5px 4px 8px}.tube-glass{height:142px}.tube-label{font-size:12px}.tube-label small{font-size:9px}.water-symbol{width:18px;height:18px;font-size:11px}.secondary-tools button{font-size:11px;padding:9px 10px}.water-stage .toolbar button{min-width:73px;padding:9px 12px}dialog{padding:14px}.group-buttons button{font-size:11px}.levels{gap:6px}.levels button{font-size:14px}.jump{gap:6px}.jump button{padding:9px 8px}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .12s}}
