:root{color-scheme:light;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#203850;background:#c5efec;font-size:16px}
*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 12% 4%,#fff1bd 0,transparent 46%),linear-gradient(145deg,#a8e5f2,#e5fcf2 52%,#a3dfcf)}
.shell{width:min(100%,480px);margin-inline:auto;padding:max(16px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-block-end:14px}
h1{margin:0;font-size:2.25rem;line-height:1.3;letter-spacing:-.04em}h2{margin:0;font-size:1.4rem;line-height:1.55}p{line-height:1.65}.eyebrow{font-size:.875rem;color:#1c6371;font-weight:650;margin-block:0 2px}.edition{border:1px solid #4998a5;color:#285465;padding:5px 10px;border-radius:999px;font-size:.8rem;font-weight:650}
button{appearance:none;min-height:48px;border-radius:16px;border:1px solid #77b2b2;background:#fffdf6;color:#203850;padding:10px 16px;font:inherit;font-weight:650;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid #28508c;outline-offset:3px}button:active{transform:translateY(1px);background:#dff8ed}button:disabled{color:#4c6f72;background:#dfebe7;cursor:default}.primary{background:#0B7E84;color:#fff;border:1px solid #09505c;box-shadow:0 4px 0 #074450}.primary:active{background:#07565f}.quiet{background:#ffffffbd}.wide{width:100%;margin-block:6px}.view[hidden],[hidden]{display:none!important}
.home{text-align:center;padding:16px 20px 22px;border-radius:28px;background:#fffbefed;border:1px solid #fff;box-shadow:0 15px 35px #174c5c18}.home h2{font-size:1.75rem}.home p{margin-block:12px}.home .soft-note{font-size:.9rem;color:#39616a}.welcome-art{position:relative;height:240px;border-radius:22px;background:linear-gradient(150deg,#91d9eb,#cdf5ea);overflow:hidden;margin-block-end:18px}.welcome-art:after{content:"";position:absolute;inset:auto -10px -34px;height:76px;background:#67bda8;border-radius:50%}.welcome-art img{position:absolute;height:242px;inset-block:0;inset-inline-start:calc(50% - 121px);z-index:1;filter:drop-shadow(0 9px 8px #15586714)}.sun{position:absolute;inset-block-start:18px;inset-inline-end:22px;width:70px;height:70px;border-radius:50%;background:#ffe89b}
.scene-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.scene-heading h2{font-size:1.15rem}#occupancy{font-weight:700;border:1px solid #65a6a8;border-radius:99px;background:#f4fff6;padding:5px 12px;font-size:.9rem;white-space:nowrap}.instruction{font-size:.9rem;margin-block:4px 10px}.scene{position:relative;width:100%;aspect-ratio:360/470;direction:ltr;overflow:hidden;border-radius:26px;box-shadow:0 15px 30px #13485629;background:#daf7f8}.market,#canvas,#tiles{position:absolute;inset:0;width:100%;height:100%}.market{object-fit:fill;pointer-events:none}#canvas canvas{display:block;width:100%;height:100%}#tiles{pointer-events:none}.tile-target{pointer-events:auto;position:absolute;border:0;background:transparent;padding:0;min-height:0;border-radius:12px}.tile-target:active{background:#fff7}.tile-target[aria-disabled="true"]{cursor:help}.tile-target:focus-visible{outline-offset:-4px;background:#fff2}
#status{min-height:3.2em;margin-block:10px 4px;font-size:1rem}.facts{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:.875rem;color:#295861;min-height:1.5em}.dock{display:flex;gap:8px;position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:5;padding:10px 8px;background:#e9fcf1f5;border:1px solid #94c4bf;border-radius:22px;backdrop-filter:blur(8px);margin-block:12px 0;box-shadow:0 7px 25px #15556426}.dock{flex-wrap:wrap}.dock button{padding-inline:10px;flex:1 1 64px;min-width:44px;white-space:normal}
.result{position:absolute;inset:20% 6% auto;direction:inherit;text-align:center;padding:20px;border-radius:24px;background:#fffdf1f5;border:2px solid #ebb165;box-shadow:0 9px 25px #31596820;z-index:3}.stamp{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 8px;color:#08736e;border:3px solid #0e837d;border-radius:50%;font-size:2rem;font-weight:700;transform:rotate(-10deg)}#result-stars{font-size:1.9rem;letter-spacing:.1em;color:#8a590c;margin:4px 0}#result-facts{font-size:.9rem;line-height:1.6;margin:8px 0 12px}.result h2{font-size:1.4rem}
.album{text-align:center;background:#fffaf0;padding:22px;border-radius:24px;border:1px solid #fff;box-shadow:0 12px 35px #245d6421}.postcard-art{position:relative;border:10px solid #fff;margin-block:18px;background:linear-gradient(140deg,#94dce8,#cefae8);border-radius:14px;height:245px;box-shadow:0 4px 0 #e8dac2}.postcard-art img{height:230px}.album-stamp{display:grid;place-items:center;position:absolute;inset-inline-end:10px;inset-block-end:10px;width:70px;height:70px;border:4px solid #2a8680;border-radius:50%;color:#2a8680;font-size:2.8rem;transform:rotate(-12deg)}
.settings{display:flex;gap:8px;flex-wrap:wrap;margin-block:18px 10px}.settings button{flex:1 1 auto;font-size:.875rem;padding-inline:10px}.preview-label{text-align:center;font-size:.8rem;color:#396575;margin:4px 0}.save-sheet{position:fixed;inset:0;background:#143e496e;display:grid;place-items:center;padding:20px;z-index:20;overflow:auto}.save-card{width:min(100%,400px);background:#fffaf0;padding:22px;border-radius:24px;box-shadow:0 25px 80px #18364b55}.save-card h2{font-size:1.35rem}.save-card p{margin-block:8px 18px}
@media(max-width:360px){.shell{padding-inline:12px}.home{padding-inline:16px}.welcome-art{height:200px}.welcome-art img{height:210px;inset-inline-start:calc(50% - 105px)}.result{padding:12px}.dock button{font-size:.9rem;padding-inline:8px}.edition{font-size:.75rem}.scene-heading{gap:6px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}button:active{transform:none}}html[data-reduced="true"] button:active{transform:none}

#notice:empty{display:none}#notice{font-size:.95rem;line-height:1.6;color:#234f60;background:#fff9e7;padding:10px 14px;border-radius:12px}

.scene-heading{flex-wrap:wrap}.result{position:relative;inset:auto;margin:10px 0;overflow:visible}.scene:has(.result:not([hidden])){overflow:visible}.scene .result{position:absolute;inset:12% 5% auto}.result p{overflow-wrap:anywhere}

.safi-tip{display:flex;align-items:center;gap:10px;background:#ffffffb5;border-radius:16px;margin-block:8px;padding:4px 10px}.safi-tip img{width:56px;height:56px;object-fit:contain;flex-shrink:0}.safi-tip p{margin:0;font-size:.9rem}.safi-tip[data-state="thinking"] img{transform:rotate(-8deg)}.safi-tip[data-state="won"]{background:#d5ffec;border:1px solid #15977a}.safi-tip[data-state="full"]{background:#fff2d7;border:1px solid #bd8b34}

/* Executive vivid market: original procedural materials, fixed board geometry. */
:root{color-scheme:dark;color:#eaf8ff;background:#071936}body{background:radial-gradient(ellipse at 12% 4%,#633b91 0,transparent 44%),radial-gradient(ellipse at 92% 35%,#0d747f 0,transparent 52%),linear-gradient(145deg,#06122d,#12375c 64%,#052039)}.eyebrow,.preview-label{color:#9bf3e3}.home{background:linear-gradient(150deg,#142d50,#0a1c37);border-color:#347fb2;box-shadow:0 20px 50px #02081788}.home .soft-note{color:#b2dce9}.welcome-art{background:radial-gradient(circle at 65% 20%,#9376d4,#185789 65%,#0b2449)}.welcome-art:after{background:#127f8d}.sun{background:#ffd951;box-shadow:0 0 24px #f4bf5140}.scene{background:#0b2347;box-shadow:0 18px 38px #010b2680;border:1px solid #4b98bd}.scene-heading h2{color:#f1fbff}#occupancy{background:#123c58;border-color:#59d3c4;color:#c1ffed}.primary{background:linear-gradient(145deg,#08a9a2,#106c9a);border-color:#54e2cf;box-shadow:0 4px 0 #063555;color:#fff}.quiet,button{color:#e8f6ff;background:#173453;border-color:#527fab}.primary:active{background:#147591}.quiet:active,button:active{background:#254b6e}button:disabled{background:#22374f;color:#a3bccf}.dock{background:#0c294df2;border-color:#54b8c4;box-shadow:0 8px 30px #020b25aa}.facts{color:#b9e5f0}.result,.album,.save-card{background:linear-gradient(145deg,#1d3a60,#102640);border-color:#947bd6;color:#f4faff}.stamp,.album-stamp{color:#70f1cf;border-color:#6feccc}.postcard-art{background:radial-gradient(circle at 25% 10%,#8564e7,#125d85);border-color:#245074;box-shadow:0 4px 0 #071b34}#result-stars{color:#ffe982}.save-sheet{background:#02091fcc}.tile-target:focus-visible,button:focus-visible{outline-color:#ffdc61}#notice{background:#173c5d;color:#def7ff}
