/* Modern app controls, independent of the pixel-art world. */
:root{--ui-text:#f6f6f8;--ui-muted:#c0bec7;--ui-line:#ffffff16;--ui-surface:#232229d9;--ui-accent:#e5def5}
body,button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif}
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{display:block;width:22px;height:22px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
#game .map-badge,#game .plain-link,#game .icon-button,#game .event-badge,#game .dock{background:var(--ui-surface);border:1px solid var(--ui-line);box-shadow:0 4px 20px #0002;backdrop-filter:blur(18px);color:var(--ui-text)}
#game .top-hud{gap:8px}
#game .map-badge{border-radius:14px;padding:10px 14px;gap:0;min-width:0}
#game .map-badge b{font-size:12px;font-weight:600;letter-spacing:0;line-height:1.4}
#game .map-badge small{display:block;font-family:inherit;font-size:10px;letter-spacing:0;color:var(--ui-muted);line-height:1.5;margin-top:3px}
#game .plain-link{border-radius:12px;font-size:11px;padding:11px 12px;white-space:nowrap}
#game .icon-button{border-radius:12px;min-width:44px;min-height:44px;font-size:15px;padding:8px}
#game .event-badge{flex-direction:row;border-radius:24px;gap:8px;padding:10px 14px;min-height:44px}
#game .event-badge b{font-size:12px;font-weight:500}
#game .event-badge .ui-icon{width:18px;height:18px}
#game .dock{border-radius:22px;padding:6px;gap:3px;bottom:max(28px,env(safe-area-inset-bottom));max-width:420px}
#game .dock button{border:0;border-radius:15px;color:var(--ui-muted);gap:7px;min-height:61px;font-size:11px;font-weight:500;padding:8px 4px;transition:background .15s,color .15s}
#game .dock button:hover,#game .dock button:focus-visible{background:#ffffff0c;color:white}
#game .write-action{display:flex;flex-direction:row;gap:9px;width:auto;height:48px;padding:0 18px;border:0;outline:none;border-radius:24px;background:var(--ui-accent);color:#2e2838;box-shadow:0 4px 18px #0003;bottom:142px;right:max(16px,env(safe-area-inset-right))}
#game .write-action b{font-size:13px;font-weight:600}
#game .write-action .ui-icon{width:19px;height:19px}
#game .game-hint{color:#dfdde5;font-size:10px;border:0;border-radius:0;background:none;padding:0;bottom:110px;text-shadow:0 1px 5px #000}
#game .demo-label{font-size:9px;color:#aba7b5;bottom:8px}
.world-title{text-shadow:0 2px 12px #0008}
.world-title h1{font-family:inherit;letter-spacing:-1px;font-size:54px;font-weight:600;line-height:1.4}
.world-title h1 i{font-family:inherit;font-size:30px;color:#ddd8e6;font-style:normal}
.world-title p{font-family:inherit;letter-spacing:0;font-size:32px;font-weight:400}
.world-title small{font-size:25px;color:#e2dee7}
.couple-hotspot{gap:7px}
.couple-hotspot span{font-family:inherit;font-size:23px;letter-spacing:0;border:0;border-radius:16px;background:#242129c9;padding:5px 15px;color:#f1edf6}
.couple-hotspot b{font-family:inherit;font-size:20px;font-weight:400;border:0;border-radius:16px;background:#242129c9;padding:4px 12px;color:#cfccd5}
.ambient-name{font-family:inherit;border:0;background:#242129de;border-radius:12px;padding:5px 12px;color:#e9e6ef}
dialog{font-family:inherit;border:1px solid var(--ui-line);border-radius:22px;background:#242329;box-shadow:0 20px 80px #0005;padding:25px;color:var(--ui-text)}
dialog::backdrop{background:#0d0b1455;backdrop-filter:blur(5px)}
dialog h2,#panel h2{font-family:inherit;font-weight:600;font-size:24px;letter-spacing:-.5px;line-height:1.55;margin:12px 0 20px}
dialog h3{font-family:inherit;font-weight:500;font-size:17px}
dialog .eyebrow{font-family:inherit;letter-spacing:0;font-size:12px;color:#a9a6b2}
.sheet-head{gap:12px}.sheet-head .eyebrow{margin:0}
.close{background:#ffffff08;border:0;border-radius:50%;width:36px;height:36px;min-width:36px;min-height:36px;font-size:24px;line-height:1;color:#d0ccd7}
#panel-content>p,.panel-letter p{font-family:inherit;font-size:14px;line-height:1.9;color:#c6c2ce}
.button{border-radius:12px;font-size:14px;min-height:48px}
.primary{background:var(--ui-accent);border:0;color:#2e2838}
.outline{background:#ffffff05;border:1px solid #ffffff20;color:#e0dbe8}
.notice{background:#ffffff05;border:0;border-radius:12px;color:#bdb8c7;font-size:13px;line-height:1.8}
.avatar-preview{background:#1c1b21;border:1px solid var(--ui-line);border-radius:14px}.small-button{color:#d3c6ec}
input:not([type=radio],[type=checkbox],[type=file]),select,textarea{background:#1c1b21;border:1px solid #ffffff20;border-radius:10px;color:var(--ui-text);min-height:46px}
.choices label{background:#1c1b21;border:1px solid #ffffff20;border-radius:10px;padding:10px}
.choices label:has(:checked){background:#e5def510;border-color:#c8b6e3;color:#e5def5}
label{font-size:13px}label>span,.hint,.form-intro{color:#b6b1c0}.consent{font-size:11px;color:#c3becd}
.message{border-bottom:1px solid var(--ui-line)}.message small{color:#aaa3b7}.message p{color:#ded9e6;font-size:14px}
#toast{border:1px solid var(--ui-line);border-radius:12px;background:#eeebf3;color:#302a3a;box-shadow:0 6px 25px #0002}
@media(max-width:360px){#game .map-badge{padding:8px 10px}#game .map-badge b{font-size:11px}#game .plain-link{font-size:10px;padding:11px 9px}#game .top-hud{gap:6px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
