@import url('/form-base.css');
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:#100e17}button,a{touch-action:manipulation}#game{position:relative;width:100%;height:100dvh;overflow:hidden;isolation:isolate}.ambient{position:absolute;inset:-30px;background:linear-gradient(#13101ac0,#13101a99),url('/assets/grace-topdown.png') center/cover;filter:blur(18px);z-index:-1}#stage{position:absolute;left:50%;top:0;transform:translateX(-50%);height:100%;width:min(100vw,90dvh);outline:none;user-select:none;touch-action:manipulation}.map{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-shade{position:absolute;inset:0;background:linear-gradient(#08071066,transparent 35%,transparent 75%,#100d1b88);pointer-events:none}.world-title{position:absolute;top:12%;width:100%;text-align:center;pointer-events:none;text-shadow:0 2px 10px #000,0 0 28px #000}.world-title>span{font:9px Georgia;letter-spacing:4px;color:#e5c692}.world-title h1{font:27px Batang,serif;letter-spacing:3px;margin:10px 0}.world-title h1 i{color:#e9c4d2;font:13px Georgia}.world-title p{font-size:15px;letter-spacing:6px;margin:0}.world-title small{font-size:11px;color:#e5dcd2}.couple-hotspot{position:absolute;top:28%;height:14%;left:36%;width:28%;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;padding:0}.couple-hotspot span{background:#201928dd;border:1px solid #bd9b67;padding:1px 8px;font-size:10px;white-space:nowrap}.couple-hotspot b{font-size:9px;color:#efd3a8;background:#17131dcc;padding:1px 8px;white-space:nowrap}.hud{position:absolute;z-index:5}.top-hud{top:max(18px,env(safe-area-inset-top));left:22px;right:22px;display:flex;gap:10px;align-items:center}.map-badge{display:flex;align-items:center;gap:12px;border:1px solid #ad90636b;background:#211c2ae8;box-shadow:inset 0 0 0 3px #ffffff06,0 4px 14px #0005;padding:9px 15px;border-radius:6px}.map-icon{font-size:26px;color:#d5b680}.map-badge b{display:block;font-size:12px;font-weight:500}.map-badge small{font:8px Georgia;letter-spacing:1.5px;color:#bfad9a}.map-badge i{font-style:normal;color:#a997ad}.icon-button,.plain-link{background:#211c2ae8;border:1px solid #ad90636b;min-height:44px;border-radius:6px;padding:10px 14px;font-size:11px}.plain-link{margin-left:auto}.quest{left:24px;top:108px;padding:16px;width:230px;background:linear-gradient(110deg,#211b2cef,#211b2caa);border-left:2px solid #d8b47c;border-radius:0 6px 6px 0}.quest-heading{color:#e3c28e;font-size:12px}.quest button{display:flex;align-items:center;width:100%;padding:9px 0;background:none;border:0;color:#dfd2e5;font-size:11px;text-align:left;gap:9px}.quest button b{margin-left:auto}.quest i{font-style:normal;color:#d6b885}.quest .complete{color:#b7d6a7}.quest .complete i{font-size:0}.quest .complete i:after{content:'✓';font-size:12px}.event-badge{right:25px;top:108px;display:flex;flex-direction:column;align-items:center;gap:2px;background:#231d2ce8;border:1px solid #d6b88580;border-radius:8px;padding:10px 13px}.event-badge span{font-size:25px;color:#ecd2a1}.event-badge b{font-size:11px;font-weight:500}.event-badge small{font:8px Georgia;letter-spacing:2px;color:#dfbd84}.player-card{bottom:130px;left:25px;display:flex;align-items:center;background:#1b1725e8;border:1px solid #bba07470;border-radius:6px;padding:7px 12px;height:76px;gap:10px}.player-card .sprite{width:54px;transform:scale(.7);margin:0 -10px}.player-card small{display:block;font:8px Georgia;letter-spacing:2px;color:#d5b784}.player-card b{display:block;font-size:12px}.player-card span{display:block;font-size:9px;color:#b7a9bf}.player-card button{background:transparent;border:0;font-size:22px;padding:10px}.controls{bottom:230px;left:30px}.dpad{display:grid;grid-template-columns:36px 36px 36px;grid-template-rows:36px 36px 36px;gap:3px;filter:drop-shadow(0 2px 6px #0008)}.dpad button{border:1px solid #d7ba8570;background:#2d2638cc;border-radius:6px;font-size:12px;color:#e7d2ab}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-row:2}.dpad span{grid-column:2;grid-row:2;display:grid;place-items:center;color:#d6b885}.dpad button:nth-child(4){grid-column:3;grid-row:2}.dpad button:last-child{grid-column:2;grid-row:3}.dock{bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;border:1px solid #d6b88566;background:linear-gradient(#332b40ee,#211b2bee);padding:7px;border-radius:9px;box-shadow:inset 0 0 0 3px #ffffff05,0 8px 30px #0008}.dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:76px;min-height:60px;border:0;border-right:1px solid #ffffff10;background:none;font-size:11px;color:#e7d8c9;gap:3px}.dock button:last-child{border:0}.dock button span{font-size:24px;line-height:1;color:#dec395}.write-action{right:28px;bottom:145px;width:88px;height:88px;border-radius:50%;border:2px solid #efd8a0;outline:4px solid #8b69574d;background:radial-gradient(circle at 35% 20%,#a986a4,#514059);box-shadow:0 5px 20px #0008;display:flex;flex-direction:column;align-items:center;justify-content:center}.write-action span{font-size:26px;line-height:1.3}.write-action b{font-size:11px;font-weight:500}.game-hint{bottom:115px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;background:#17121ebd;border:1px solid #ffffff15;padding:4px 12px;border-radius:20px;color:#ddcdb7}.demo-label{bottom:7px;left:50%;transform:translateX(-50%);font-size:9px;color:#c1b2c8;white-space:nowrap}.actor{position:absolute;transform:translate(-50%,-100%);padding:0;background:none;border:0;display:flex;align-items:center;flex-direction:column;width:90px;z-index:3}.actor .sprite{height:112px;pointer-events:none}.name-tag{font-size:9px;line-height:1.5;padding:1px 6px;background:#201927de;border:1px solid #d7b78345;white-space:nowrap}.speech{position:absolute;bottom:98%;font-size:10px;line-height:1.5;background:#fff2e2;color:#443445;max-width:130px;width:max-content;max-height:65px;overflow:hidden;padding:5px 8px;border:1px solid #dbbf9b;border-radius:7px 7px 7px 0;box-shadow:0 2px 12px #0006;overflow-wrap:anywhere}.npc .speech{animation:speech 10s infinite;animation-delay:var(--delay)}@keyframes speech{0%,45%{opacity:1}55%,95%{opacity:0}100%{opacity:1}}.player{z-index:4}.player-marker{position:absolute;bottom:97%;color:#f4d9a3;font:bold 9px Georgia;letter-spacing:1px;text-shadow:0 2px 4px #000}.player:has(.speech) .player-marker{display:none}.player .name-tag{border-color:#e1b972;color:#f0d9a7}.walking .sprite{animation:step .32s steps(2) infinite}@keyframes step{50%{transform:translateY(-3px) rotate(2deg)}}#destination{position:absolute;width:22px;height:12px;border:2px solid #eed7a6;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 14px #e5b56a}.paused .npc .speech{animation:none}.paused .walking .sprite{animation:none}dialog{margin:auto;border:2px solid #ac8b64;border-radius:10px;max-height:85dvh;background:linear-gradient(#2c2438,#1d1926);box-shadow:inset 0 0 0 4px #ffffff06,0 20px 100px #000a}dialog::backdrop{background:#100d1866;backdrop-filter:blur(2px)}#panel-content>p{color:#cfc0d5;font-size:13px}#panel-content .button{margin-top:20px}.panel-letter{text-align:center}.panel-letter p{line-height:2.2;color:#cebed0}.big-symbol{font-size:35px;color:#d6b885;display:block}.notice{padding:18px;background:#ffffff08;color:#c4b4ca;font-size:12px}.message{align-items:center}.message p{font-size:13px}.sprite{background-size:324px 216px}#toast{bottom:130px}#panel h2{font-size:24px}.plain-link:focus-visible{outline-offset:2px}@media(max-width:700px){.top-hud{top:max(12px,env(safe-area-inset-top));left:12px;right:12px;gap:6px}.map-badge{padding:6px 9px;gap:6px}.map-badge b{font-size:10px}.map-badge small{font-size:7px;letter-spacing:.5px}.map-icon{font-size:21px}.map-badge i{display:none}.plain-link{padding:10px 8px;font-size:10px}.icon-button{padding:10px 12px}.quest{top:77px;left:12px;width:176px;padding:7px 10px}.quest-heading{font-size:10px}.quest button{font-size:9px;padding:5px 0;gap:5px}.event-badge{top:77px;right:12px;padding:5px 10px}.event-badge span{font-size:20px}.event-badge b{font-size:9px}.world-title{top:21%}.world-title>span{font-size:7px}.world-title h1{font-size:22px;margin:5px 0}.world-title p{font-size:12px}.world-title small{font-size:9px}.couple-hotspot{top:29%;height:13%}.player-card{left:12px;bottom:126px;height:54px;padding:4px 8px;gap:4px}.player-card .sprite{transform:scale(.5);margin:0 -15px}.player-card b{font-size:10px}.player-card small{font-size:6px}.player-card span{font-size:8px}.player-card button{font-size:18px;padding:5px}.controls{left:14px;bottom:192px}.write-action{width:72px;height:72px;right:18px;bottom:160px}.write-action b{font-size:10px}.dock{bottom:max(27px,env(safe-area-inset-bottom));width:calc(100% - 24px);max-width:430px;padding:5px}.dock button{min-width:0;flex:1;min-height:55px;font-size:10px}.game-hint{bottom:96px;font-size:9px}.demo-label{font-size:8px;bottom:7px}.actor{width:70px}.actor .sprite{transform:scale(.75);transform-origin:bottom;margin-top:-28px}.actor .speech{font-size:9px;bottom:95%;max-width:105px}.name-tag{font-size:8px}.player-marker{bottom:95%}dialog{max-width:calc(100% - 20px);max-height:88dvh;padding:20px}}@media(prefers-reduced-motion:reduce){.npc .speech,.walking .sprite{animation:none!important}}@media(max-height:520px) and (min-width:650px){.quest{top:90px}.controls{bottom:170px}.player-card{bottom:90px}.world-title{top:10%}.dock{bottom:22px}.write-action{bottom:100px}.game-hint{bottom:100px}}
