@font-face{font-family:Nunito;src:url('assets/nunito.ttf')}@font-face{font-family:Nunito;src:url('assets/nunito-heavy.ttf');font-weight:800 1000}
:root{font-family:Nunito,system-ui,sans-serif;color:#6f614e;background:#f7f3e7;font-synthesis:none;--ink:#6f614e;--edge:#d2c2a4;--cream:#fffbee;--green:#aebb96;--pink:#dbb1ad}*{box-sizing:border-box}body{margin:0;background-image:radial-gradient(#ac977522 .6px,transparent .6px);background-size:7px 7px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #aa8f63;outline-offset:4px}[hidden]{display:none!important}.shell{width:calc(100% - 56px);max-width:1560px;margin:auto}.masthead{height:80px;display:flex;justify-content:space-between;align-items:center;padding:0 6px;gap:15px}.wordmark{font-weight:900;font-size:26px;letter-spacing:-1px;display:flex;align-items:center;gap:10px}.wordmark>span:first-child{font-size:37px;color:#c3a274;line-height:1}.wordmark .secret-tag{font-size:10px;letter-spacing:.2px;font-weight:600;color:#9b8e76;transform:rotate(-3deg);border-left:1px solid #d7c8ae;margin-left:12px;padding-left:20px}.header-right{display:flex;align-items:center;gap:17px}.header-right>span{font-size:10px;color:#958670}.round-button{width:34px;height:34px;border:1px solid #c9b79a;border-radius:50%;font-weight:800;background:#fbf7e9;font-size:17px;display:grid;place-items:center;flex-shrink:0}.world-frame{position:relative;height:calc(100svh - 131px);max-height:960px;min-height:480px;border:7px solid #fffbee;border-radius:17px;box-shadow:0 0 0 1px #d7c9ad,0 5px 0 #e5dcc5;overflow:hidden;background:#d2ddb4}#world{display:block;width:100%;height:100%;outline-offset:-5px;touch-action:none}.world-ui{pointer-events:none;position:absolute;inset:0}.world-ui button,.dock,.dpad{pointer-events:auto}.world-top{position:absolute;inset:21px 23px auto;display:flex;justify-content:space-between;align-items:start;gap:10px}.place-stamp{display:flex;align-items:center;gap:8px;padding:9px 13px;background:#fffbedee;border:1px solid #c9bd9d;border-radius:5px 9px 5px 7px;box-shadow:2px 3px 0 #8c86631b;font-size:11px;font-weight:800;transform:rotate(-1deg)}.status-dot{width:7px;height:7px;border-radius:50%;background:#9eaf87}.wallet{background:#fff6d9;border:1px solid #bda375;border-radius:30px;min-width:98px;display:flex;justify-content:center;align-items:center;gap:9px;padding:7px 16px;font-weight:900;box-shadow:0 3px 0 #bba77b2b;font-size:20px}.wallet>span{color:#dbb750;font-size:26px;line-height:1.2;-webkit-text-stroke:.8px #bb9959}.visit-note{position:absolute;right:28px;top:88px;transform:rotate(2deg);background:#f9ebc9;border:1px solid #d5c59d;box-shadow:2px 3px 0 #8c866319;padding:13px 12px 10px;font-size:11px;display:flex;align-items:center;gap:11px}.note-pin{width:7px;height:7px;background:#cca19a;border-radius:50%;position:absolute;left:50%;top:-4px;box-shadow:0 1px 0 #92756855}.visit-note button{font-size:20px;line-height:1;background:none;border:0;padding:0 3px}.dock{position:absolute;left:50%;bottom:25px;transform:translateX(-50%) rotate(-.5deg);background:#fffbedf5;border:1px solid #b9aa89;border-radius:12px 7px 13px 8px;display:flex;padding:7px 12px;gap:7px;box-shadow:3px 4px 0 #8e86632e}.dock button{background:transparent;border:0;border-radius:7px;min-width:68px;padding:4px 12px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;font-weight:900}.dock button:hover{background:#ebe7cf}.dock svg{height:28px;width:28px;stroke:#8c7a5c;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.dock button:nth-child(2) svg{stroke:#ae8280}.dock button:nth-child(3) svg{stroke:#8d9c73}.dock button:nth-child(4) svg{stroke:#a69c79}.world-hint{position:absolute;left:50%;bottom:118px;transform:translateX(-50%);font-size:10px;color:#7d7f60;background:#f4f0dbce;border-radius:3px;padding:5px 11px;white-space:nowrap;transition:opacity 1s}#minimap{position:absolute;right:22px;bottom:23px;width:140px;height:94px;border:5px solid #fff7e5;border-radius:6px;box-shadow:0 0 0 1px #c0b68f,2px 3px 0 #95875f25;transform:rotate(2deg);background:#d9dfbb}.interact{position:absolute;left:50%;bottom:123px;transform:translateX(-50%);border:1px solid #b6a888;border-radius:7px;background:#fffae8;padding:9px 16px;font-size:12px;font-weight:900;box-shadow:0 3px 0 #a79b7744;white-space:nowrap}kbd{font:800 10px Nunito;background:#e9dfc5;border:1px solid #d1c09e;border-radius:3px;padding:1px 5px;margin-left:7px}.dpad{display:none;position:absolute;left:17px;bottom:23px;width:141px;height:141px;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(3,43px);gap:4px}.dpad button{border:1px solid #b4a986;background:#fff9e7e8;border-radius:10px;box-shadow:0 3px 0 #8d835c3b;font-size:23px;touch-action:none;user-select:none}.dpad button.pressed{background:#dddfbf;transform:translateY(2px);box-shadow:none}.dpad [data-move=up]{grid-column:2;grid-row:1}.dpad [data-move=left]{grid-column:1;grid-row:2}.dpad>span{grid-column:2;grid-row:2}.dpad [data-move=right]{grid-column:3;grid-row:2}.dpad [data-move=down]{grid-column:2;grid-row:3}.welcome{position:absolute;inset:0;display:grid;place-items:center;background:#e7e9d34f;backdrop-filter:blur(2px)}.welcome-paper{width:340px;max-width:calc(100% - 34px);position:relative;padding:30px 36px 25px;background:#fff9e9;border:1px solid #bca888;box-shadow:5px 7px 0 #9d8d682b;border-radius:4px 10px 4px 7px;transform:rotate(-1.5deg);text-align:center}.tape{position:absolute;width:78px;height:25px;background:repeating-linear-gradient(90deg,#c3cbaa88 0 7px,#e0ddbbad 7px 14px);top:-13px;left:calc(50% - 39px);transform:rotate(3deg)}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:900;color:#9c8b6e;text-transform:uppercase}h1{font-size:52px;letter-spacing:-2px;line-height:1.2;margin:10px 0 14px;font-weight:900}.welcome-cast{height:105px;display:flex;align-items:center;justify-content:center;gap:32px}.welcome-cast>img{width:99px;transform:rotate(-7deg)}.usagi-crop{display:block;width:68px;height:98px;overflow:hidden;position:relative;clip-path:inset(0 0 5% 0)}.usagi-crop img{position:absolute;height:119px;width:auto;max-width:none;left:-23px;top:-10px}.welcome p{font-size:14px;line-height:1.85;margin:17px 0 0;text-align:left;padding-left:14px}.signature{display:block;font-size:13px;text-align:right;margin:7px 14px 22px}.primary,.secondary{border:1px solid #ac9d7c;border-radius:5px 8px 5px 7px;padding:10px 19px;min-height:42px;font-size:12px;font-weight:900;box-shadow:0 3px 0 #c9b99355;background:#e6d29d}.primary:hover{background:#edddb4}.secondary{background:#fbf5e3;box-shadow:none}.secondary:hover{background:#eee6d0}.welcome .primary{width:100%;background:#bfcba6;border-color:#a1ad88;font-size:14px}.small{font-size:11px!important;color:#9d8d71;line-height:1.7}.link-button{padding:3px 0;border:0;background:none;text-decoration:underline;text-underline-offset:3px;font-size:10px}.toast{position:absolute;left:50%;top:86px;transform:translate(-50%,-10px);opacity:0;pointer-events:none;z-index:20;background:#fff8e4;border:1px solid #baa888;border-radius:6px;padding:11px 18px;font-size:12px;box-shadow:3px 4px 0 #95875f25;transition:opacity .2s,transform .2s;max-width:90%;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}footer{display:flex;align-items:center;justify-content:space-between;height:47px;font-size:10px;color:#a08e73;padding:0 6px}footer>span>span{color:#c2a39b;margin-left:4px}footer button{color:#a08e73}
dialog{width:min(820px,calc(100% - 40px));max-height:min(86svh,850px);padding:0;border:1px solid #b8a789;border-radius:9px 15px 8px 13px;background:#fff9e9;color:var(--ink);box-shadow:6px 8px 0 #8b7c522e;overflow:auto}dialog::backdrop{background:#5e665344;backdrop-filter:blur(3px)}.panel-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;background:#fff9e9f5;padding:23px 27px 18px;border-bottom:1px dashed #d9c9a9;gap:15px}.panel-header h2{font-size:28px;letter-spacing:-.8px;margin:3px 0 0;line-height:1.25}.panel-header .round-button{font-size:22px}#panel-body{padding:22px 27px 27px}.panel-intro{font-size:13px;margin:0 0 18px;line-height:1.8;color:#8a795f}.balance-line{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px;font-size:11px}.balance-line strong{color:#a48a47;font-size:15px}.inventory{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.item{position:relative;border:1px solid #dfd0b0;background:#fcf5e2;border-radius:6px 10px 5px 8px;padding:10px 12px 13px;display:flex;flex-direction:column;align-items:stretch}.item img{width:100%;height:95px;object-fit:contain}.item h3{font-size:12px;font-weight:900;text-align:center;margin:2px 0 10px}.item>p{font-size:10px;text-align:center;color:#9f8b69;margin:0 0 9px}.item button{font-size:11px;min-height:37px;padding:7px 11px;box-shadow:none;display:flex;justify-content:center;gap:7px}.item small{position:absolute;right:9px;top:8px;background:#f2e5bf;border-radius:8px;font-weight:800;font-size:9px;padding:2px 6px}.tabs{display:flex;gap:8px;margin-bottom:19px}.tabs button{padding:8px 16px;background:#f5edda;border:1px solid #d6c6a7;border-radius:20px;font-size:11px}.tabs button.active{background:#dce2c4;border-color:#a9b691}.empty-note{padding:25px 0;font-size:13px;line-height:1.9;text-align:center}.game-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}.game-ticket{border:1px solid #d1bc99;border-radius:7px;background:#f5e8c7;overflow:hidden}.game-illustration{height:139px;background:#d9e2bc;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:end;gap:23px;padding-bottom:20px;border-bottom:1px dashed #c7c8a2}.game-illustration:before{content:'';position:absolute;bottom:-30px;left:-20px;width:150%;height:65px;background:#b8c99c;border-radius:50%}.game-illustration>img{position:relative;z-index:1;width:80px;height:80px;object-fit:contain;transform:rotate(-7deg)}.game-illustration .usagi-crop{z-index:1;transform:scale(.8) rotate(6deg);transform-origin:bottom}.memory-illustration{background:#eddbd3;align-items:center;padding:20px;gap:10px}.memory-illustration:before{display:none}.mini-card{position:relative;width:55px;height:78px;display:grid;place-items:center;border:2px solid #fffaec;border-radius:5px;background:#bac7a2;box-shadow:1px 3px 0 #ac9b7c3b;color:#fff8e1;font-size:31px;transform:rotate(-12deg)}.mini-card+span{transform:rotate(8deg);background:#d9aba5}.game-ticket-content{padding:17px}.game-ticket h3{font-size:19px;margin:0 0 6px;letter-spacing:-.4px}.game-ticket p{font-size:11px;line-height:1.8;margin:0 0 16px;min-height:40px}.game-ticket button{width:100%;font-size:12px}.reward-tag{font-size:10px;color:#9a804b;font-weight:900;display:block;margin-bottom:13px}.guests-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.guest-card{border-bottom:1px dashed #d1c4a7;padding:11px 4px 20px;display:grid;grid-template-columns:76px 1fr;align-items:center;gap:13px}.guest-portrait{width:76px;height:86px;object-fit:contain}.guest-card h3{font-size:14px;margin:0 0 5px}.guest-card p{font-size:10px;margin:0 0 7px;color:#9f8b6d;line-height:1.7}.guest-card button{font-size:10px;padding:6px 11px;min-height:32px}.character-row{display:flex;align-items:center;gap:15px;border-bottom:1px dashed #d9c9a9;padding:0 0 20px;margin-bottom:20px}.character-row>div{flex:1}.character-row p{font-size:11px;margin:4px 0 0;color:#97846b}.character-row button{width:68px;height:70px;position:relative;background:#f6edda;border:1px solid #dfcfac;border-radius:7px;display:grid;place-items:center}.character-row button.selected{background:#e0e5cd;border-color:#99ac81}.character-row canvas{max-width:62px;height:62px}.settings-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.settings-actions button{font-size:11px}.instructions{font-size:12px;line-height:2}.instructions kbd{margin:0 3px}.save-note{border-left:3px solid #c5cba6;padding:2px 0 2px 13px;margin-top:20px;line-height:1.8;font-size:11px}.credits-copy{font-size:12px;line-height:2}.credits-copy a{color:#8d9c75}.talk-scene{display:grid;grid-template-columns:110px 1fr;gap:24px;align-items:center;min-height:165px}.talk-scene canvas{width:110px;height:125px}.talk-scene blockquote{font-size:20px;font-weight:800;line-height:1.7;margin:0}.talk-scene p{font-size:12px;font-style:italic;color:#a08a6d}.talk-footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px}.talk-footer span{font-size:11px;color:#a28b59}.decorate-bar{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:6;padding:14px 17px;background:#fff9e9f5;border:1px solid #b2a17e;border-radius:9px;box-shadow:3px 4px 0 #8d805c33;width:max-content;max-width:calc(100% - 28px);display:flex;gap:25px;align-items:center}.decorate-bar strong{display:block;font-size:12px;margin-bottom:4px}.decorate-bar span{display:block;font-size:10px;color:#9b8667}.decorate-actions{display:flex;gap:7px}.decorate-actions button{font-size:10px;min-height:37px;padding:8px 12px}.memory-status{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:18px}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:510px;margin:auto}.memory-card{height:112px;border:2px solid #fff9e6;border-radius:8px;background:repeating-linear-gradient(45deg,#bec9a9 0 7px,#c9d3b6 7px 14px);box-shadow:0 0 0 1px #b1bc9c,1px 3px 0 #a0946e24;font-size:30px;color:#fff9e6;display:grid;place-items:center;transition:transform .14s;position:relative}.memory-card:hover{transform:rotate(-2deg)}.memory-card canvas{width:85px;height:95px;display:none}.memory-card.faceup,.memory-card.matched{background:#fffcf1}.memory-card.faceup canvas,.memory-card.matched canvas{display:block}.memory-card.faceup>span,.memory-card.matched>span{display:none}.memory-card.matched{opacity:.6;box-shadow:0 0 0 1px #b3bd97}.memory-result{text-align:center;margin:23px 0 2px}.memory-result strong{display:block;font-size:24px;margin-bottom:6px;color:#ab8d4d}.memory-result p{font-size:12px}.memory-result button{margin:7px 4px 0}.picnic-panel{width:min(1280px,calc(100% - 24px));max-height:96svh;height:94svh;overflow:hidden}.picnic-panel .panel-header{height:69px;padding:10px 19px}.picnic-panel .panel-header h2{font-size:20px}.picnic-panel #panel-body{padding:0;height:calc(100% - 69px)}#picnic-frame{width:100%;height:100%;border:0;display:block;background:#faf6e9}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(pointer:coarse){.dpad{display:grid}.world-hint{bottom:125px}.interact{left:auto;right:25px;bottom:130px;transform:none}kbd{display:none}#minimap{bottom:135px;width:100px;height:67px}.dock{bottom:21px}.dock button{min-width:58px;padding:5px 8px}.dock{left:auto;right:19px;transform:rotate(-1deg);gap:3px;padding:7px}}
@media(max-width:760px){.shell{width:calc(100% - 20px)}.masthead{height:64px;padding:0 3px}.wordmark{font-size:21px;gap:7px}.wordmark>span:first-child{font-size:29px}.wordmark .secret-tag{display:none}.header-right{gap:11px}.header-right>span{font-size:8px}.round-button{width:30px;height:30px;font-size:15px}.world-frame{height:calc(100svh - 109px);min-height:410px;max-height:none;border-width:5px;border-radius:12px}.world-top{inset:14px 13px auto}.place-stamp{font-size:10px;padding:8px 10px}.wallet{font-size:19px;min-width:88px;padding:5px 12px}.wallet>span{font-size:23px}.visit-note{right:18px;top:72px;font-size:9px;padding:9px 8px 7px;gap:9px}.visit-note button{font-size:17px}.dpad{display:grid;width:126px;height:126px;grid-template-columns:repeat(3,39px);grid-template-rows:repeat(3,39px);gap:3px;left:12px;bottom:21px}.dock{left:auto;right:12px;bottom:21px;transform:rotate(-1deg);padding:6px;gap:0}.dock button{min-width:44px;padding:4px 7px;font-size:9px;gap:5px}.dock svg{width:25px;height:25px}#minimap{right:14px;bottom:118px;width:91px;height:61px;border-width:4px}.world-hint{bottom:95px;font-size:9px}.interact{left:auto;right:14px;bottom:193px;transform:none;padding:9px 11px;font-size:11px}.interact kbd{display:none}footer{height:40px;font-size:9px}dialog{width:calc(100% - 22px);max-height:86svh}.panel-header{padding:18px 17px 15px}.panel-header h2{font-size:24px}#panel-body{padding:18px 17px 23px}.inventory{grid-template-columns:repeat(2,1fr);gap:11px}.item{padding:6px 9px 11px}.item img{height:88px}.item h3{font-size:11px}.panel-intro{font-size:12px}.balance-line{font-size:10px;gap:10px}.guests-grid{grid-template-columns:1fr}.guest-card{grid-template-columns:76px 1fr;gap:18px}.game-list{grid-template-columns:1fr}.game-ticket{display:grid;grid-template-columns:100px 1fr}.game-illustration{height:100%;border:0;border-right:1px dashed #c7c8a2;flex-direction:column;justify-content:center;align-items:center;padding:12px 0;gap:3px}.game-illustration>img{width:66px;height:66px}.game-illustration .usagi-crop{transform:scale(.66);height:80px;width:60px;margin-top:-10px}.game-ticket-content{padding:14px}.game-ticket h3{font-size:17px}.game-ticket p{font-size:10px;margin-bottom:10px;min-height:0}.reward-tag{font-size:9px;margin-bottom:10px}.game-ticket button{font-size:11px;min-height:38px;padding:8px}.memory-illustration{gap:10px}.mini-card{height:63px;width:45px;font-size:25px}.talk-scene{grid-template-columns:75px 1fr;gap:15px;min-height:140px}.talk-scene canvas{width:75px;height:97px}.talk-scene blockquote{font-size:17px}.talk-scene p{font-size:11px}.decorate-bar{display:block;bottom:15px;width:calc(100% - 22px);max-width:none;padding:12px 12px}.decorate-bar>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.decorate-bar strong{margin:0;font-size:11px}.decorate-bar span{font-size:9px;max-width:50%;text-align:right}.decorate-actions{justify-content:end;gap:6px}.decorate-actions button{padding:7px 11px;font-size:10px;flex:1}.decorating .dpad{bottom:125px}.decorating #minimap{display:none}.decorating .visit-note{display:none}.memory-card{height:91px}.memory-card canvas{width:69px;height:81px}.memory-board{gap:8px}.picnic-panel{height:96svh;max-height:96svh;width:calc(100% - 10px)}.picnic-panel .panel-header{height:61px}.picnic-panel .panel-header h2{font-size:18px}.picnic-panel #panel-body{height:calc(100% - 61px)}}
@media(max-width:360px){.dock button{min-width:39px;padding:4px 5px}.dock{right:9px}.dpad{left:9px;grid-template-columns:repeat(3,35px);grid-template-rows:repeat(3,35px);width:111px;height:111px}.memory-card{height:78px}.memory-card canvas{width:58px;height:70px}.welcome-paper{padding:25px 28px 23px}h1{font-size:45px}.decorate-actions button{padding:7px;font-size:9px}}
@media(max-height:550px) and (orientation:landscape){.masthead{height:43px}.wordmark{font-size:20px}.world-frame{height:calc(100svh - 78px);min-height:230px}footer{height:30px}.world-top{inset:10px 14px auto}.visit-note{display:none}.dock{bottom:15px}.dock button{min-width:47px;padding:2px 7px}.dock svg{width:23px;height:23px}#minimap{bottom:20px;right:16px}.dpad{bottom:13px;left:14px;grid-template-columns:repeat(3,32px);grid-template-rows:repeat(3,32px);width:102px;height:102px}.interact{right:145px;bottom:30px}.welcome-paper{width:400px;display:grid;grid-template-columns:1fr 1fr;column-gap:24px;padding:20px 25px}.welcome-paper .eyebrow{grid-column:1}h1{font-size:39px;margin:3px 0 6px}.welcome-cast{grid-column:1;grid-row:3/6;height:85px;gap:20px}.welcome-cast>img{width:75px}.welcome-cast .usagi-crop{transform:scale(.75);transform-origin:center;margin-left:-8px}.welcome p{grid-column:2;grid-row:1/4;font-size:12px;margin:4px 0 0;padding:0}.signature{grid-column:2;margin:0 0 13px;font-size:11px}.welcome .primary{grid-column:2;font-size:12px;min-height:36px}.world-hint{bottom:95px}.decorate-bar{display:flex;width:max-content;max-width:calc(100% - 25px);padding:9px 14px;gap:20px;bottom:14px}.decorate-bar>div:first-child{display:block;margin:0}.decorate-bar span{max-width:none;text-align:left;margin-top:4px}.decorating .dpad{bottom:85px}}
.panel-feedback{padding:10px 13px;border:1px solid #c2cba4;background:#e8ecd9;border-radius:5px;font-size:11px;line-height:1.8;margin:0 0 17px}.portrait-slot{display:flex;align-items:center;justify-content:center}.memory-card canvas{max-width:100%;object-fit:contain}.character-row .portrait-slot canvas{width:58px!important;height:58px!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}

/* Keep the dialog body flexible: a face-up canvas must never set a grid column's minimum size. */
.welcome-cast{gap:16px}.welcome-cast>img:not(.yona-paper){width:76px}.welcome-cast>.yona-paper{width:64px;height:110px;object-fit:contain;transform:rotate(-3deg)}.welcome-cast .usagi-crop{width:58px;height:86px}.welcome-cast .usagi-crop img{height:106px;left:-20px;top:-9px}
.welcome-cast{gap:9px;width:100%;min-width:0}.welcome-portrait{display:flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;height:105px}.welcome-portrait canvas{display:block;width:100%;height:105px;object-fit:contain;min-width:0;max-width:100%}
html:has(dialog[open]){overflow:hidden}
dialog{max-width:calc(100vw - 24px);width:min(820px,calc(100vw - 24px));overflow:hidden}
dialog[open]{display:flex;flex-direction:column}
.panel-header{flex:0 0 auto;position:relative;min-width:0;padding:20px 24px 17px;gap:12px}
.panel-header>div{min-width:0}
.panel-header .eyebrow{font-size:8px;letter-spacing:1.3px;line-height:1.7;display:block}
.panel-header h2{overflow-wrap:anywhere}
#panel-body{min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;flex:1 1 auto}
.inventory{grid-template-columns:repeat(3,minmax(0,1fr))}
.item,.guest-card,.game-ticket,.game-ticket-content,.talk-scene>div{min-width:0}
.item h3{overflow-wrap:anywhere;line-height:1.5}
.item img{max-width:100%}
.guests-grid,.game-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.guest-card{grid-template-columns:76px minmax(0,1fr)}
.portrait-slot{min-width:0}
.calendar-button{border:1px solid #cdbb9d;background:#fffaeb;border-radius:6px 9px 6px 8px;min-height:36px;padding:5px 10px;display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;max-width:200px}
#season-icon{font-size:20px;line-height:1}.calendar-button.is-preview{background:#f2e0d5;border-style:dashed}
.season-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.season-card{min-width:0;position:relative;text-align:left;padding:15px 13px;background:linear-gradient(125deg,var(--paper),#fff9e8);border:1px solid #d0bf9f;border-radius:5px 12px 5px 8px;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:8px;align-items:center;min-height:84px}.season-card>span{grid-row:span 2;font-size:27px;color:#9b7f59}.season-card strong{font-size:14px}.season-card small{font-size:10px;line-height:1.5;margin-top:4px}.season-card:last-child{grid-column:1/-1;background:linear-gradient(125deg,#efcdd4,#fff7e1)}.season-card.selected,.calendar-auto.selected{outline:2px solid #a08b65;outline-offset:-3px}.calendar-auto{width:100%;display:flex;align-items:center;gap:13px;border:1px solid #c4b38f;background:#f4ecd5;padding:13px 16px;border-radius:7px;text-align:left}.calendar-auto>span:first-child{font-size:26px}.calendar-auto>span:nth-child(2){flex:1;display:grid;gap:4px}.calendar-auto strong{font-size:13px}.calendar-auto small{font-size:10px}.calendar-peek{margin:24px 0 12px}.calendar-dates{margin:24px 0 18px;border-top:1px dashed #d2bf9b}.calendar-dates h3{font-size:15px;margin:18px 0 12px}.calendar-dates>div{display:flex;justify-content:space-between;gap:15px;font-size:11px;padding:9px 0;border-bottom:1px dotted #e1d4b9}.calendar-dates span{flex-shrink:0;color:#8c795a}.birthday-note{display:flex;align-items:center;gap:23px;padding-bottom:15px}.birthday-note p{font-size:14px;line-height:1.9}.birthday-note>div>span{font-size:12px}.birthday-friends{display:flex;gap:14px;border-block:1px dashed #d9c9a9;padding-block:16px}.birthday-friends>div{flex:1;min-width:0;display:flex;align-items:center;gap:12px}.birthday-friends p{font-size:11px;line-height:1.8}.birthday-friends .portrait-slot{flex-shrink:0;width:58px}.birthday-friends canvas{max-width:100%}.birthday-gift{display:flex;gap:15px;align-items:center;background:#f2e2b6;border:1px solid #d5c394;border-radius:8px;margin:20px 0;padding:17px}.birthday-gift>span{font-size:37px;color:#b79854}.birthday-gift>div{flex:1}.birthday-gift strong{font-size:13px}.birthday-gift p{font-size:11px;margin:6px 0 0}
@media(max-width:760px){.header-right{gap:9px}.header-right>#save-label{display:none}.calendar-button{padding:4px 8px;min-width:36px}#season-label{display:none}.birthday-friends{flex-direction:column}.birthday-note{gap:12px}.birthday-note p{font-size:12px}.birthday-gift{flex-wrap:wrap;gap:10px}.birthday-gift>button{width:100%}.season-card{padding:12px 10px;column-gap:5px;grid-template-columns:25px minmax(0,1fr)}.season-card strong{font-size:12px}.season-card>span{font-size:24px}}
@media(max-width:360px){.masthead{gap:5px}.wordmark{gap:5px}.header-right{gap:5px}.calendar-button{padding:3px 6px;min-width:32px}.header-right>.round-button{width:32px;height:32px}}
.portrait-slot canvas{width:76px;height:86px;display:block;max-width:100%;object-fit:contain}
.talk-portrait canvas{width:110px;height:125px}
.shop-hello,.player-profile,.home-note{display:flex;align-items:center;gap:18px;margin:0 0 20px}
.shop-hello .portrait-slot,.player-profile .portrait-slot{width:65px;flex:0 0 65px}
.shop-hello p,.player-profile p,.home-note p{font-size:12px;line-height:1.8;margin:4px 0}
.ren-gift{display:flex;align-items:center;gap:12px;padding:10px 13px;border:1px dashed #bba77d;background:#f2e9c9;border-radius:7px;margin-bottom:18px}.ren-gift img{width:68px;height:58px;object-fit:contain;flex:0 0 68px}.ren-gift strong{display:block;font-size:12px;margin-bottom:5px}.ren-gift span{display:block;font-size:10px;line-height:1.7}
.player-profile{padding-bottom:15px;border-bottom:1px dashed #d9c9a9}
.player-profile strong{font-size:18px}
.home-portrait canvas{height:125px;width:105px}
.memory-board{width:100%;min-width:0;max-width:490px;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.memory-card{min-width:0;width:100%;height:auto;aspect-ratio:4/5;padding:0;display:block;position:relative;overflow:hidden;contain:inline-size;transform:none!important}
.memory-card>span{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(20px,6vw,32px)}
.memory-card canvas{position:absolute;inset:7%;width:86%!important;height:86%!important;max-width:none;min-width:0;object-fit:contain;pointer-events:none}
.memory-card.faceup>span,.memory-card.matched>span{display:none}
.memory-card:hover{border-color:#f3deb1}
.memory-card.matched{opacity:.88}
.memory-card:focus-visible{outline-offset:1px;outline-width:2px}
.memory-status{gap:8px;font-size:11px}
.memory-result strong{font-size:22px}
.picnic-panel #panel-body{overflow:hidden;scrollbar-gutter:auto}
@media(max-width:760px){
  .world-frame{min-height:360px}
  .dock{left:13px;right:13px;bottom:14px;transform:none;justify-content:space-around;gap:0;padding:7px 5px;border-radius:11px}
  .dock button{min-width:0;flex:1;padding:4px 6px;font-size:10px;gap:4px}
  .dock svg{width:25px;height:25px}
  .dpad{left:14px;bottom:104px;width:117px;height:117px;grid-template-columns:repeat(3,37px);grid-template-rows:repeat(3,37px);gap:3px}
  #minimap{right:16px;bottom:105px;width:83px;height:56px}
  .interact{bottom:183px;right:16px;max-width:calc(100% - 153px);font-size:10px;white-space:normal;line-height:1.4}
  .visit-note{left:17px;right:auto;top:68px;padding:6px 9px;font-size:9px;gap:12px;transform:rotate(-1deg)}
  .visit-note .note-pin{display:none}
  .world-hint{bottom:86px;font-size:8px;max-width:95%;white-space:normal;text-align:center}
  .decorating .dpad{bottom:128px}
  .decorate-bar{bottom:14px}
  .decorate-bar>div:first-child{gap:8px}
  .decorate-actions{flex-wrap:wrap}
  .decorate-actions button{min-width:0;padding:8px 7px}
  dialog{max-height:calc(100svh - 30px);max-width:calc(100vw - 24px);width:calc(100vw - 24px)}
  .panel-header{padding:17px 17px 14px}
  .panel-header h2{font-size:23px;line-height:1.2}
  #panel-body{padding:17px}
  .inventory{grid-template-columns:repeat(2,minmax(0,1fr))}
  .guests-grid,.game-list{grid-template-columns:minmax(0,1fr)}
  .game-ticket{grid-template-columns:86px minmax(0,1fr)}
  .talk-scene{grid-template-columns:68px minmax(0,1fr);gap:13px}
  .talk-portrait canvas{width:68px;height:95px}
  .talk-scene blockquote{font-size:16px}
  .talk-footer{gap:10px;align-items:end}
  .talk-footer>span{max-width:45%;font-size:10px;line-height:1.8}
  .talk-footer button{min-width:0;padding-inline:12px;font-size:11px}
  .shop-hello,.player-profile{gap:12px;margin-bottom:15px}
  .memory-board{gap:8px}
  .memory-card{height:auto}
  .memory-status{font-size:10px;margin-bottom:15px}
  .picnic-panel{height:calc(100svh - 12px);max-height:calc(100svh - 12px)}
}
@media(max-width:360px){
  .masthead{height:57px}.wordmark{font-size:19px}.wordmark>span:first-child{font-size:25px}
  .header-right{gap:8px}.header-right>span{display:none}
  .world-frame{height:calc(100svh - 101px)}
  .world-top{inset:12px 11px auto}.wallet{min-width:79px;font-size:17px;padding:5px 10px}.wallet>span{font-size:22px}
  .place-stamp{font-size:9px;padding:8px 9px}
  .dpad{left:12px;bottom:100px;width:111px;height:111px;grid-template-columns:repeat(3,35px);grid-template-rows:repeat(3,35px)}
  .dock{left:11px;right:11px}.interact{max-width:calc(100% - 140px);right:12px}
  .panel-header{padding:15px 14px 13px;gap:8px}.panel-header h2{font-size:21px}.panel-header .eyebrow{font-size:7px;letter-spacing:1px}
  #panel-body{padding:14px;scrollbar-gutter:auto}
  .memory-board{gap:6px}.memory-status{font-size:9px}
  .item h3{font-size:10px}.item{padding-inline:7px}.item button{padding-inline:5px;font-size:10px}
  .game-ticket{grid-template-columns:70px minmax(0,1fr)}.game-ticket-content{padding:12px}
  .settings-actions{gap:7px}.settings-actions button{font-size:10px;padding-inline:12px}
}
@media(max-height:550px) and (orientation:landscape){
  .world-frame{min-height:230px}.dock{left:auto;right:16px;bottom:12px;width:250px}.dock button{min-width:45px}
  .dpad{left:15px;bottom:13px;width:102px;height:102px;grid-template-columns:repeat(3,32px);grid-template-rows:repeat(3,32px)}
  #minimap{display:none}.interact{bottom:90px;right:16px;max-width:180px}.visit-note{display:none}
  .decorating .dpad{bottom:86px}.memory-board{max-width:330px;gap:6px}.memory-card{aspect-ratio:5/4}
  .panel-header{padding:12px 18px}.panel-header h2{font-size:21px}#panel-body{padding:14px 18px}
}
