:root{--paper:#f7f3ed;--ink:#443b50;--muted:#928a98;--plum:#796585;--gold:#c6aa78;--line:#e7dfe7;--serif:Georgia,'Batang','Noto Serif KR',serif;--sans:'Apple SD Gothic Neo','Malgun Gothic',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 var(--sans);-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default}a{text-decoration:none;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #ba9a65;outline-offset:4px}button,a{transition:background .18s,box-shadow .18s,transform .18s}button:active{transform:translateY(1px)}button{border:0}img{max-width:100%}[hidden]{display:none!important}.castle-header{background:#fcfaf6ed;border-bottom:1px solid #e6dfe4;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.header-inner{max-width:1180px;margin:auto;padding:0 28px;height:92px;display:flex;align-items:center;justify-content:space-between;gap:25px}.castle-brand{display:flex;align-items:center;gap:11px;flex-shrink:0}.castle-brand>span{font-family:var(--serif);font-size:27px;font-weight:bold;line-height:1.25;letter-spacing:2px}.castle-brand small{display:block;font:7px/1.5 var(--sans);letter-spacing:2.3px;color:#a493a7;margin-top:5px}.castle-header nav{display:flex;align-items:center;gap:31px;height:100%;font-size:12px;color:#9a8e9e}.castle-header nav a{height:100%;display:flex;align-items:center;position:relative;white-space:nowrap}.castle-header nav a.active{color:#675373;font-weight:700}.castle-header nav a.active:after{content:'';position:absolute;width:18px;height:2px;border-radius:2px;background:#bfa178;bottom:20px;left:calc(50% - 9px)}.resident-chip{display:flex;align-items:center;gap:6px;padding:3px 11px 3px 5px;background:#efebf1;border:1px solid #e3dbe7;border-radius:30px;max-width:185px;font-size:10px}.resident-chip>span:not(.chip-arrow){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-arrow{margin-left:5px;color:#a795af}main{max-width:1180px;padding:30px 28px 0;margin:auto;min-height:calc(100vh - 260px)}.hero{position:relative;border-radius:20px;min-height:460px;overflow:hidden;background:#5f527b;isolation:isolate;box-shadow:0 10px 30px #59456e16}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 58%;z-index:-2}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#29213b94 0%,#3c31583b 51%,#30243d00 80%),linear-gradient(0deg,#372a5059,transparent 35%)}.hero-copy{padding:63px 48px 75px;width:58%;color:#fff7e9}.hero-kicker{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:1.7px;color:#e2d7e7}.hero-kicker i{width:5px;height:5px;background:#e3cb8f;border-radius:50%;box-shadow:0 0 7px #f5dca7}.hero h1{font:500 43px/1.55 var(--serif);letter-spacing:-1.6px;margin:20px 0 14px;text-shadow:0 2px 12px #35224422}.hero-copy p{font-size:11px;line-height:2;color:#e4dce9;margin:0}.hero-actions{display:flex;align-items:center;gap:23px;margin-top:29px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;border-radius:8px;padding:12px 21px;font-size:11px;line-height:1.8;border:1px solid transparent;min-height:43px;font-weight:600}.button:hover{transform:translateY(-2px);box-shadow:0 5px 18px #3b2a5018}.button.cream{background:#f5ebd9;color:#66506a;border-color:#fff5df88}.button.plum{background:#7c6589;border-color:#715a7e;color:#fff9ef}.hero-link{font-size:10px;color:#f1e6ed}.hero-link span{margin-left:5px;color:#d9c096}.castle-pin{position:absolute;font-size:9px;padding:7px 10px;border-radius:6px;background:#fff5dfed;color:#6b5676;border:1px solid #f8ead6;box-shadow:0 3px 15px #2b1e4b33;display:flex;gap:7px;align-items:center}.castle-pin:hover{transform:translateY(-3px);background:#fffaf2}.castle-pin>span{color:#bda36e}.castle-pin b{font-size:9px;font-weight:400}.pin-library{top:31%;right:20%}.pin-welfare{top:66%;right:10%}.hero-bottom{position:absolute;bottom:17px;right:24px;font-size:8px;letter-spacing:1px;color:#e3d7e8b0}.welcome-strip{position:relative;display:flex;align-items:center;gap:17px;max-width:940px;min-height:85px;margin:-18px auto 0;padding:8px 26px 8px 12px;background:#fffaf0;border:1px solid #e9dfcb;border-radius:12px;box-shadow:0 5px 15px #59456e08;z-index:2}.welcome-strip>canvas{flex:none}.welcome-strip>div{flex:1}.welcome-strip small{font-size:8px;letter-spacing:.5px;color:#ac987c}.welcome-strip p{font-size:11px;color:#7d6d73;margin:5px 0}.welcome-strip button{background:none;font-size:9px;color:#a08d82;white-space:nowrap;padding:12px 0}.welcome-strip button span{margin-left:8px}.content-section{margin-top:44px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:21px}.eyebrow{display:block;font-size:8px;letter-spacing:2px;color:#af9ab0;font-weight:600}.section-heading h2,.record-heading h2{font-size:20px;letter-spacing:-.8px;line-height:1.6;font-weight:600;margin:7px 0 0}.section-heading>p{font-size:10px;color:#aaa1a9;margin:0 0 3px}.text-link{font-size:10px;color:#9c86a5;padding:7px 0}.facility-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.facility{display:block;border:1px solid #e7dfe4;border-radius:13px;background:#fcfaf6;overflow:hidden}.facility:hover{transform:translateY(-4px);box-shadow:0 7px 22px #73517d12}.facility-art{height:125px;display:grid;place-items:center;position:relative;overflow:hidden}.facility-art canvas{max-width:100%;height:125px;width:230px;object-fit:contain}.lavender{background:#ede7f1}.blue{background:#e7e9f0}.peach{background:#f3e8e3}.sage{background:#e9ecdf}.facility-copy{padding:16px 18px 18px}.facility-copy>small{font-size:7px;letter-spacing:1.3px;color:#afa0b0}.facility-copy h3{font-size:14px;font-weight:600;margin:4px 0 9px;display:flex;justify-content:space-between;align-items:center}.facility-copy h3 span{font-size:12px;color:#b8a1b9;font-weight:400}.facility-copy p{font-size:10px;line-height:1.9;color:#9b8e9d;margin:0}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.game-card{display:block;border:1px solid #e5dce8;border-radius:13px;overflow:hidden;background:#fcfaf7}.game-card:hover{transform:translateY(-4px);box-shadow:0 8px 22px #73517d14}.game-art{height:164px;position:relative;display:flex;align-items:center;justify-content:center;background:#e6dfed}.game-art canvas{height:100%;width:100%;object-fit:contain}.game-art.memory-art{background:#e7dccc}.game-art.training-art{background:#dfe5e5}.game-badge{position:absolute;top:14px;left:14px;padding:3px 8px;font-size:8px;border-radius:20px;background:#fffaf0c9;color:#8b748e;border:1px solid #fff8edb0}.game-card-copy{padding:18px 21px}.game-card-copy>small{font-size:8px;color:#b29bae}.game-card-copy h3{font-size:16px;margin:5px 0 7px;font-weight:600;letter-spacing:-.4px}.game-card-copy p{font-size:10px;line-height:1.9;color:#9e8e9e;margin:0}.game-card-bottom{display:flex;justify-content:space-between;border-top:1px solid #eee5ed;margin-top:17px;padding-top:13px;font-size:9px;color:#b3a0af}.game-card-bottom b{color:#8c7199;font-weight:500}.bottom-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:27px;margin:35px 0 42px}.notice-preview{border:1px solid #e5dee3;border-radius:12px;background:#fcfaf6;padding:19px 23px}.mini-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.mini-heading h2{font-size:13px;font-weight:600;margin:0}.mini-heading>a{font-size:8px;color:#aa97af}.notice-preview>a{display:flex;align-items:center;gap:9px;font-size:9px;padding:11px 0;color:#9c8b9f;border-top:1px solid #ede5eb}.notice-preview>a>b{margin-left:auto;font-weight:400;color:#b7a3bf}.notice-label{font-size:8px;border:1px solid #ddcede;background:#f5eff5;color:#a587a7;border-radius:4px;padding:1px 6px;white-space:nowrap;font-weight:400}.resident-invite{display:flex;align-items:center;gap:10px;background:#ece7ef;border:1px solid #e0d7e6;border-radius:12px;padding:20px 19px}.resident-invite>canvas{flex:none}.resident-invite small{font-size:7px;letter-spacing:1.5px;color:#a68fab}.resident-invite h3{font-size:13px;letter-spacing:-.3px;margin:7px 0;color:#7c6589;font-weight:600}.resident-invite p{font-size:9px;color:#a18ba9;margin:0}.resident-invite>span{margin-left:auto;color:#a791b2}.castle-footer{max-width:1180px;margin:auto;border-top:1px solid #e7dfe5;padding:27px 28px 33px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#b3a4b4}.castle-footer>div{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:14px;white-space:nowrap;color:#9f8ba4}.castle-footer small{font:8px var(--sans);margin-left:7px}.castle-footer>p{font-size:8px;margin:0}.castle-footer>span{font-size:7px;letter-spacing:.5px}.page-heading{text-align:center;padding:25px 10px 36px}.page-heading h1{font:500 35px/1.5 var(--serif);letter-spacing:-.7px;margin:12px 0}.page-heading p{font-size:12px;color:#a08ca5;margin:0}.filter-row{display:flex;gap:8px;align-items:center;margin-bottom:25px}.filter-row button{background:#fdfaf7;border:1px solid #e5dce6;color:#a58fab;padding:9px 16px;border-radius:22px;font-size:10px}.filter-row button.selected{background:#7e688b;border-color:#7e688b;color:#fcf7eb}.filter-row>span{font-size:9px;color:#af9ab2;margin-left:auto}.big-games .game-art{height:210px}.big-games .game-card-copy{padding:23px}.big-games .game-card-copy h3{font-size:19px}.under-construction{display:flex;align-items:center;gap:20px;padding:24px 29px;border:1px dashed #d7cbdc;border-radius:13px;margin-top:27px;background:#efebf1aa}.work-icon{font:45px/1 var(--serif);color:#b39dbe}.under-construction h2{font-size:13px;margin:0 0 7px;font-weight:500;color:#9d84a8}.under-construction p{font-size:10px;color:#b09ab7;margin:0}.status-tag{margin-left:auto;padding:4px 9px;border:1px solid #d8cce0;border-radius:20px;font-size:9px;color:#ac95b5;white-space:nowrap}.soft-note{font-size:11px;line-height:1.9;text-align:center;color:#b09ab8;margin:28px 0 43px}.archive-grid{display:grid;grid-template-columns:1fr 1fr;gap:27px;margin:10px auto 0;max-width:970px}.story-book{position:relative;border-radius:6px 16px 16px 6px;min-height:350px;display:flex;align-items:center;padding:49px 38px 44px 56px;overflow:hidden;box-shadow:3px 5px 0 #d8ccd5,0 10px 26px #51455c13;isolation:isolate;transition:transform .2s}.story-book:hover{transform:translateY(-4px)}.fog-book{background:linear-gradient(145deg,#41475c,#6a627e);color:#f1e8db}.aurelia-book{background:linear-gradient(145deg,#536963,#79806a);color:#f1e8db}.book-spine{position:absolute;top:0;bottom:0;left:0;writing-mode:vertical-rl;transform:rotate(180deg);padding:27px 10px;font-size:7px;letter-spacing:2px;border-left:1px solid #f1e8db25;background:#1f22251c;z-index:2}.story-book .eyebrow{color:#cfbcc8;font-size:7px;letter-spacing:1.5px}.story-book h2{font:500 28px/1.5 var(--serif);letter-spacing:-1px;margin:14px 0 15px}.story-book p{font-size:11px;line-height:2;color:#d0c4cf;margin:0 0 30px}.book-open{font-size:10px;border-bottom:1px solid #d4c3b955;padding-bottom:7px;color:#e4d0b6}.book-sigil{font:190px/1 var(--serif);position:absolute;right:-19px;bottom:-10px;color:#ffffff0e;z-index:-1}.lounge-grid{display:grid;grid-template-columns:380px minmax(300px,440px);gap:65px;align-items:center;justify-content:center;padding:9px 20px 30px}.resident-card{position:relative;border:1px solid #d2bed7;background:linear-gradient(145deg,#efe7f2,#ddd3e7);border-radius:21px;padding:30px;text-align:center;overflow:hidden;box-shadow:0 11px 0 -5px #e3dbe7,0 15px 25px #60416c10;min-height:425px}.resident-card.candle{background:linear-gradient(145deg,#f4eadd,#ead8c7);border-color:#d8c0a3}.resident-card.garden{background:linear-gradient(145deg,#e8eee0,#d5e0d2);border-color:#bfcfb7}.resident-card:before{content:'';position:absolute;inset:10px;border:1px solid #fff9;pointer-events:none;border-radius:13px}.card-corner{position:absolute;right:25px;top:80px;color:#baa1c0;font-size:23px}.resident-card-heading{display:flex;justify-content:center;align-items:center;gap:10px;font:16px var(--serif);color:#887095}.resident-card-heading small{display:block;font:6px var(--sans);letter-spacing:1.8px;margin-top:8px;color:#ac92b6}.resident-card>canvas{display:block;margin:26px auto 6px}.resident-number{font-size:6px;letter-spacing:1.8px;color:#b09ab9}.resident-card h2{font-size:23px;letter-spacing:-.5px;font-weight:600;margin:10px 0 0;color:#7a6485}.resident-card>p{font-size:10px;color:#a38aac;margin:7px 0 22px}.card-stamp{display:inline-block;border:1px solid #b794a599;transform:rotate(-8deg);font:10px var(--serif);padding:7px 12px;color:#b38c9f;border-radius:5px}.card-stamp small{display:block;font:5px var(--sans);letter-spacing:1px;margin-top:3px}.profile-form>h2{font-size:20px;font-weight:500;letter-spacing:-.6px;margin:8px 0 24px}.profile-form>label{display:block;font-size:11px;color:#9d85a7;margin:20px 0 9px}.profile-form>input{width:100%;font-size:13px;color:#7d668b;border:1px solid #dfd2e4;border-radius:8px;background:#fdfbf8;padding:12px 14px;outline-offset:2px}.profile-form input::placeholder{color:#c0aec6}.avatar-picker{display:flex;gap:9px;flex-wrap:wrap}.avatar-picker button{background:#fdfaf8;border:1px solid #e4dbe7;border-radius:10px;padding:1px}.avatar-picker button.selected{background:#ede4f2;border-color:#ad8ebc;box-shadow:0 0 0 1px #ad8ebc}.theme-picker{display:flex;flex-wrap:wrap;gap:7px}.theme-picker button{font-size:9px;background:none;border:1px solid #e4dbe6;border-radius:6px;padding:8px 10px;display:flex;align-items:center;gap:6px;color:#ac94b4}.theme-picker button.selected{background:#f1eaf4;border-color:#b99ec6;color:#8d70a0}.theme-picker i{width:10px;height:10px;border-radius:50%}.moon-swatch{background:#c5afd2}.candle-swatch{background:#dcc0a0}.garden-swatch{background:#b6c8a7}.profile-form .button{width:100%;margin-top:26px}.save-note{font-size:9px;color:#b29cbb;text-align:center;line-height:1.8;margin:12px 0 0}.inline-status{font-size:11px;color:#8d74a2;min-height:25px;text-align:center;padding-top:8px}.record-heading{margin-top:21px}.records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0 43px}.record{display:flex;align-items:center;gap:16px;background:#fcfaf7;border:1px solid #e3d7e8;border-radius:12px;padding:20px}.record small{font-size:10px;color:#ab94b4}.record b{display:block;font:25px/1.5 Georgia;color:#80648f}.record>span{font-size:27px;color:#cab6d5}.board-list{max-width:860px;margin:5px auto 35px}.board-list details{background:#fcfaf7;border:1px solid #e3d7e8;border-radius:11px;margin:12px 0;overflow:hidden}.board-list summary{cursor:pointer;display:flex;gap:12px;align-items:center;padding:20px 23px;list-style:none}.board-list summary::-webkit-details-marker{display:none}.board-list summary b{font-weight:500;font-size:13px;color:#8c709b}.board-list summary>span:last-child{margin-left:auto;color:#bba3c7}.board-list details>div{border-top:1px solid #ece3f0;margin:0 23px;padding:18px 0 23px;font-size:12px;color:#aa90b8;line-height:2}.board-list p{margin:0 0 9px}.board-sign{display:flex;justify-content:center;gap:14px;align-items:center;margin-bottom:45px}.board-sign p{font-size:10px;line-height:2;color:#b29abc}.board-sign b{font-weight:400;color:#a287af}.game-page-heading{text-align:center;padding:5px 0 21px}.game-page-heading>a{display:block;text-align:left;font-size:10px;color:#a189ad;margin-bottom:20px}.game-page-heading h1{font:500 28px var(--serif);margin:14px 0}.game-page-heading p{font-size:11px;color:#ab8eb9;margin:0}.memory-shell,.training-shell{max-width:530px;margin:0 auto 40px;text-align:center;padding:24px;background:#fcfaf7;border:1px solid #dfd3e6;border-radius:18px}.memory-stats,.training-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 22px}.memory-stats span,.training-stats span{display:block;font-size:10px;color:#ae95ba}.memory-stats b,.training-stats b{display:block;font:22px/1.5 Georgia;color:#846491}.memory-stats>div+div,.training-stats>div+div{border-left:1px solid #e6dced}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.memory-card{border:1px solid #b49dc4;background:linear-gradient(145deg,#a38ab6,#826d9b);aspect-ratio:4/5;border-radius:10px;position:relative;display:grid;place-items:center;box-shadow:0 3px 0 #d1c1dc}.memory-card:before{content:'✧';color:#e3cfaa;font:36px Georgia;position:absolute;border:1px solid #d5c0df66;inset:6px;border-radius:5px;display:grid;place-items:center}.memory-card canvas{width:80px!important;height:80px!important;max-width:95%;object-fit:contain;visibility:hidden}.memory-card.flipped,.memory-card.matched{background:#f2eaf5}.memory-card.flipped:before,.memory-card.matched:before{content:'';border-color:#dac9e5}.memory-card.flipped canvas,.memory-card.matched canvas{visibility:visible}.memory-card.matched{border-color:#bfb7c9;background:#ede9ef;opacity:.75}.game-result{font-size:12px;color:#9d7daf;min-height:39px;padding:14px 0 7px}.memory-shell>.button,.training-shell>.button{width:100%}.training-shell{max-width:600px}.training-stage{background:radial-gradient(ellipse at center,#e5daed66,transparent 65%);padding:10px 10px 25px}.training-stage>canvas{display:block;margin:auto}.training-feedback{font-size:13px;color:#9b7aac;margin:8px 0 30px;min-height:25px}.magic-meter{height:25px;border:1px solid #c5b2d2;border-radius:15px;background:#e8dfef;position:relative;overflow:visible}.good-zone{position:absolute;top:0;bottom:0;left:36%;width:28%;background:#bda7d2}.perfect-zone{position:absolute;top:0;bottom:0;left:45%;width:10%;background:#e9cf91}.magic-meter #magic-dot{position:absolute;left:50%;top:-6px;bottom:-6px;width:7px;transform:translateX(-50%);border-radius:8px;background:#805c93;border:2px solid #fff6e7;box-shadow:0 0 9px #9a7cad55}.meter-labels{display:flex;justify-content:space-between;font-size:8px;color:#b59ac2;margin-top:10px}dialog{border:1px solid #decde7;background:#fcf8f1;border-radius:22px;padding:25px 35px 30px;max-width:390px;width:calc(100% - 35px);text-align:center;color:var(--ink);box-shadow:0 20px 80px #37203c33}dialog::backdrop{background:#3f2b4c66;backdrop-filter:blur(6px)}dialog>canvas{display:block;margin:auto}dialog h2{font:22px/1.6 var(--serif);margin:14px 0}dialog p{font-size:12px;line-height:2;color:#a088ac}dialog .button{margin-top:13px;width:100%}.dialog-close{position:absolute;top:9px;right:14px;width:32px;height:32px;background:none;color:#b79ec4;font-size:25px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:40;background:#75617fec;color:#fcf5e9;border:1px solid #bd9aca;border-radius:10px;padding:12px 20px;font-size:12px;box-shadow:0 8px 26px #30203d22;max-width:calc(100% - 30px);text-align:center}
@media(max-width:1000px){.header-inner{padding:0 22px}.castle-header nav{gap:22px}.hero-copy{padding-left:38px}.hero h1{font-size:39px}.hero-actions{gap:16px}.hero-link{font-size:9px}.welcome-strip{margin-left:25px;margin-right:25px}.facility-grid{gap:12px}.facility-copy{padding:14px}.facility-copy h3{font-size:13px}.facility-copy p{font-size:9px}.resident-chip{max-width:150px}.lounge-grid{grid-template-columns:330px minmax(250px,1fr);gap:35px;padding-left:0;padding-right:0}.castle-footer>span{display:none}.resident-invite h3{font-size:12px}.bottom-grid{gap:17px}.game-art{height:145px}}
@media(max-width:760px){.header-inner{height:115px;flex-wrap:wrap;padding:13px 20px 0;gap:0}.castle-brand{gap:8px}.castle-brand img{width:29px;height:34px}.castle-brand>span{font-size:23px}.castle-brand small{font-size:6px;letter-spacing:1.8px;margin-top:3px}.resident-chip{order:1;font-size:9px;max-width:155px}.resident-chip canvas{width:29px!important;height:29px!important}.castle-header nav{order:2;flex-basis:100%;justify-content:space-between;gap:10px;height:44px;font-size:10px;margin-top:7px}.castle-header nav a.active:after{bottom:4px;width:15px;left:calc(50% - 7.5px)}main{padding:18px 17px 0}.hero{min-height:440px;border-radius:15px}.hero-image{object-position:69% 50%}.hero-shade{background:linear-gradient(0deg,#2b203eeb 0%,#3f305c8c 50%,#3d2b4d10 100%)}.hero-copy{width:100%;padding:178px 26px 30px}.hero-kicker{font-size:8px;letter-spacing:1px}.hero h1{font-size:33px;line-height:1.5;letter-spacing:-1.1px;margin:14px 0 11px}.hero-copy p{font-size:10px;line-height:1.9}.hero-actions{margin-top:23px;gap:16px}.hero-actions .button{padding:11px 14px;font-size:10px;gap:12px}.hero-link{font-size:9px}.castle-pin,.hero-bottom{display:none}.welcome-strip{margin:-1px 7px 0;padding:7px 12px 9px 5px;gap:6px;border-radius:0 0 11px 11px;min-height:80px}.welcome-strip>canvas{width:56px!important;height:56px!important}.welcome-strip small{font-size:7px}.welcome-strip p{font-size:9px;line-height:1.8;word-break:keep-all}.welcome-strip button{display:none}.content-section{margin-top:30px}.section-heading{margin-bottom:15px;align-items:center}.section-heading h2,.record-heading h2{font-size:18px;margin-top:5px;letter-spacing:-.7px}.eyebrow{font-size:6px;letter-spacing:1.6px}.section-heading>p{display:none}.facility-grid{grid-template-columns:repeat(2,1fr);gap:12px}.facility-art{height:108px}.facility-art canvas{height:108px}.facility-copy{padding:13px 14px 15px}.facility-copy>small{font-size:6px}.facility-copy h3{font-size:13px;margin:4px 0 7px}.facility-copy p{font-size:9px;line-height:1.9}.game-grid{grid-template-columns:1fr;gap:13px}.featured .game-card{display:grid;grid-template-columns:36% 1fr}.featured .game-art{height:100%;min-height:168px}.featured .game-card-copy{padding:17px 17px 14px}.game-card-copy h3{font-size:15px}.game-card-copy p{font-size:9px}.game-card-copy>small{font-size:7px}.game-card-bottom{font-size:8px;margin-top:12px;padding-top:10px}.game-badge{font-size:6px;left:9px;top:9px;padding:3px 6px}.text-link{font-size:8px}.bottom-grid{grid-template-columns:1fr;gap:13px;margin:25px 0 30px}.notice-preview{padding:17px 18px}.resident-invite{padding:12px 17px}.castle-footer{padding:23px 19px 28px;display:block;text-align:center}.castle-footer>div{justify-content:center;font-size:13px}.castle-footer p{font-size:7px;margin-top:13px;line-height:1.8}.page-heading{padding:16px 2px 26px}.page-heading h1{font-size:29px;margin:10px 0}.page-heading p{font-size:10px;line-height:1.9;word-break:keep-all}.filter-row{gap:5px;margin-bottom:16px;flex-wrap:wrap}.filter-row button{padding:8px 11px;font-size:9px}.filter-row>span{display:none}.big-games .game-art{height:180px}.big-games .game-card-copy{padding:18px 20px}.big-games .game-card-copy h3{font-size:18px}.big-games .game-card-copy p{font-size:10px}.under-construction{gap:13px;padding:18px 16px;margin-top:20px;position:relative}.work-icon{font-size:32px}.under-construction h2{font-size:12px}.under-construction p{font-size:9px;line-height:1.9;word-break:keep-all}.status-tag{display:none}.soft-note{font-size:9px;margin:22px 0 30px}.archive-grid{grid-template-columns:1fr;gap:22px;margin-top:0}.story-book{min-height:290px;padding:35px 27px 35px 48px}.story-book h2{font-size:26px}.story-book p{font-size:10px}.lounge-grid{grid-template-columns:1fr;padding:0 5px 20px;gap:33px}.resident-card{width:min(100%,340px);margin:auto;min-height:400px;padding:26px}.profile-form>h2{font-size:19px}.profile-form>label{font-size:10px}.avatar-picker{gap:8px;justify-content:space-between}.avatar-picker button canvas{width:45px!important;height:45px!important}.theme-picker{gap:5px}.theme-picker button{font-size:8px;padding:8px 9px}.records{grid-template-columns:1fr;gap:10px;margin-bottom:30px}.record{padding:14px 20px;gap:17px}.record div{display:flex;align-items:center;justify-content:space-between;flex:1}.record b{font-size:21px}.record small{font-size:10px}.record>span{font-size:23px}.board-list summary{padding:16px 14px;gap:9px}.board-list summary b{font-size:11px;line-height:1.8}.board-list details>div{font-size:10px;margin:0 16px;padding:15px 0 18px}.board-sign{margin-bottom:30px;gap:5px}.board-sign p{font-size:9px}.game-page-heading{padding:0 0 20px}.game-page-heading h1{font-size:25px}.game-page-heading p{font-size:10px}.game-page-heading>a{font-size:9px;margin-bottom:16px}.memory-shell,.training-shell{padding:16px 13px;border-radius:14px;margin-bottom:29px}.memory-stats,.training-stats{margin-bottom:17px}.memory-stats span,.training-stats span{font-size:9px}.memory-stats b,.training-stats b{font-size:20px}.memory-board{gap:8px}.memory-card{border-radius:8px}.memory-card canvas{width:60px!important;height:60px!important}.memory-card:before{font-size:28px;inset:5px}.game-result{font-size:10px;min-height:33px;padding-top:12px}.training-stage{padding:0 8px 23px}.training-stage>canvas{width:150px!important;height:150px!important}.training-feedback{font-size:11px;margin-bottom:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Resident accounts */
.card-column{min-width:0}.card-caption{font-size:11px;text-align:center;color:#9a8a9f;margin:17px 0}.resident-card-heading b{font-size:inherit;font-weight:inherit}.resident-desk{min-width:0}.account-entry{border:1px solid #e7dce9;background:#fffaf3;padding:25px;border-radius:17px;margin-bottom:24px}.account-entry h2{font:23px/1.6 var(--serif);margin:10px 0}.account-entry p{font-size:12px;color:#908296;line-height:1.9}.entry-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.entry-actions .button{padding:12px 16px;font-size:11px}.button.outline{border:1px solid #d6c8dd;background:#fffdf8;color:#7d6589}.button.outline:hover{background:#f1eaf5}.quiet-button{background:none;padding:8px 0;color:#8c7999;font-size:11px;text-decoration:underline;text-underline-offset:4px}.profile-form input,.leave-dialog input{width:100%;min-width:0;border:1px solid #d9ccdF;background:#fffcf8;border-radius:9px;padding:12px 14px;color:var(--ink);font-size:14px}.profile-form input:read-only{background:#eee8ef;color:#83718e;border-style:dashed}.profile-form .field-note{margin:7px 0 18px}.field-note{font-size:11px;color:#9c8ba4;line-height:1.8}.pin-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 20px}.pin-fields label,.leave-dialog label,#castle-themes>label{display:block;font-size:11px;color:#887293;margin:0 0 8px}.pin-input{letter-spacing:6px}.pin-input::placeholder{letter-spacing:0;font-size:11px}.faction-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:9px 0 22px}.faction-picker button{padding:15px 8px;background:#faf6fc;border:1px solid #e3d7e9;border-radius:12px;text-align:center}.faction-picker button>span{display:block;font:30px/1.4 Georgia;color:#a28bb6}.faction-picker b{display:block;font-size:12px}.faction-picker small{display:block;font-size:9px;color:#9f8aaa;margin-top:5px}.faction-picker button.selected{border-color:#a68bb5;box-shadow:inset 0 0 0 1px #c4afd1;background:#eee5f4}.faction-picker button[data-faction=hero]{background:#fffdf6;border-color:#e6d8b5}.faction-picker button[data-faction=hero]>span{color:#c4a05e}.faction-picker button[data-faction=hero].selected{background:#fcf5e0;border-color:#c7a563;box-shadow:inset 0 0 0 1px #e5cc96}.faction-picker button[data-faction=hero] small{color:#ab9569}.hero-theme-note{background:#fff9e9;border:1px solid #ead9ab;border-radius:9px;padding:12px;color:#a88c50;font-size:11px}.resident-account-actions{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #e5dae8;margin-top:23px;padding-top:10px}.leave-link{color:#b4828c}.profile-form .button{width:100%;margin-top:20px}.profile-form label{font-size:12px}.profile-form .quiet-button{display:block;margin-top:15px}.resident-card.hero-card{background:radial-gradient(ellipse at 50% 25%,#fff,#fbf4de 80%);border:1px solid #d8ba78;box-shadow:0 13px 35px #aa895c16,inset 0 0 0 7px #fffaf0,inset 0 0 0 8px #ead7a7;color:#907035}.hero-card .card-corner{color:#ceb16f}.hero-card .resident-card-heading{color:#a28244}.hero-card .resident-card-heading small{color:#bfaa7e}.hero-card .resident-number{color:#b9a16a}.hero-card h2{color:#88652d}.hero-card p{color:#aa946a}.hero-card .card-stamp{border-color:#d9bb7e;color:#b39353}.hero-chip{background:#faf2de;border-color:#e2cf9f;color:#927336}.leave-dialog{max-width:450px}.leave-mascot{font:45px Georgia;color:#b29cc3}.leave-dialog h2{font-size:23px}.leave-dialog form{text-align:left;margin-top:20px}.leave-dialog input{margin-bottom:15px}.leave-actions{display:grid;gap:8px}.leave-dialog .button{margin-top:0}.button.danger{background:#b38491;color:white;border:1px solid #a57280}.inline-status{min-height:22px;word-break:keep-all}.profile-form[aria-busy=true] button{opacity:.65}
@media(min-width:761px){.card-column{position:sticky;top:120px;align-self:start}}
@media(max-width:760px){.account-entry{padding:20px}.account-entry h2{font-size:21px}.entry-actions{display:grid;grid-template-columns:1fr}.entry-actions .button{justify-content:center}.pin-fields{gap:10px}.profile-form input,.leave-dialog input{font-size:16px}.faction-picker{gap:9px}.faction-picker b{font-size:12px}.resident-card-heading b{font-size:13px}.leave-dialog{padding:28px 22px}.leave-dialog h2{font-size:22px}.leave-dialog p{font-size:11px}}

@media(max-width:760px){.lounge-grid{display:flex;flex-direction:column;gap:22px}.resident-desk{display:contents}.account-entry{order:0;margin-bottom:0}.profile-form{order:1}.card-column{order:2;width:100%}.resident-account-actions{order:3;width:100%;margin-top:0}[data-account-mode=profile] .card-column{order:0}}

.resident-role{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:16px auto 0;padding:3px 18px;border:1px solid #dcc48b;border-radius:30px;background:#fff7dd;color:#a48342;font-size:11px;font-weight:700;letter-spacing:2px}.hero-card>canvas{margin-top:12px}.avatar-picker button{flex:1;min-width:0;padding:4px 1px 7px}.avatar-picker button canvas{display:block;margin:auto}.avatar-picker button span{display:block;font-size:8px;line-height:1.5;margin-top:2px;white-space:nowrap;color:#927b9e}.avatar-picker button.selected{background:#f0e8f4}.hero-card~.card-caption{color:#aa9364}
@media(max-width:760px){.facility-grid>.facility:last-child{grid-column:1/-1;display:grid;grid-template-columns:42% 1fr}.facility-grid>.facility:last-child .facility-art{height:100%;display:flex;align-items:center}.avatar-picker{gap:5px}.avatar-picker button span{font-size:8px}.resident-role{font-size:10px;margin-top:14px}}

.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dungeon-art{background:#eadcf3}.dungeon-art canvas{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.dungeon-art .game-badge{background:#ece0c7;color:#6e5d44}@media(max-width:650px){.game-grid{grid-template-columns:1fr}.filter-row{flex-wrap:wrap}.filter-row>span{width:100%;margin-left:0}}

.blocks-art{background:#eee2ee}.blocks-art .game-badge{background:#faf0d9;color:#8a714e}

.potions-art{background:#eee5f4}.potions-art .game-badge{background:#e2f0e9;color:#648a7d}

/* A little wardrobe, open from both the castle and the resident card. */
.shop-banner{display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:22px;margin-top:18px;padding:20px 30px 20px 22px;border:1px solid #e4d6de;border-radius:16px;background:linear-gradient(110deg,#faf0ee,#f4edf7 65%,#faf6ed);color:#796383}.shop-banner:hover{border-color:#bda7c8}.shop-banner h2{font:500 22px/1.6 var(--serif);margin:7px 0}.shop-banner p{font-size:11px;color:#97879d;margin:0;word-break:keep-all}.shop-banner .eyebrow{font-size:8px;letter-spacing:2px}.shop-banner-art{position:relative;width:100px;height:105px}.shop-little-card{position:absolute;width:57px;height:79px;border:1px solid #cbb4cd;border-radius:9px;box-shadow:inset 0 0 0 4px #ffffffaa,0 6px 10px #816c8b10;top:11px;left:10px;background:#ead8e6;transform:rotate(-14deg)}.shop-little-card.front{left:32px;top:17px;background:#fff7e8;border-color:#d6bc8e;transform:rotate(9deg);display:flex;align-items:center;justify-content:center;color:#bba071;font:36px Georgia}.shop-little-card.front:after{content:'';position:absolute;bottom:12px;width:25px;height:2px;background:#decda9;border-radius:4px}.shop-banner-art i{position:absolute;right:0;top:0;font:23px Georgia;color:#b8a0c3}.shop-banner-cta{font-size:11px;border-bottom:1px solid #c8b5ce;padding:8px 0;white-space:nowrap}.resident-shop-link{display:flex;justify-content:center;gap:20px;padding:12px 16px;border:1px solid #d9c9df;background:#f6eff9;border-radius:12px;font-size:12px;color:#82668f;margin:15px auto 0;max-width:340px}.resident-shop-link:hover{background:#eee2f4}
@media(max-width:650px){.shop-banner{grid-template-columns:70px minmax(0,1fr);gap:8px 13px;padding:17px 15px}.shop-banner-art{grid-row:1/3;width:70px;height:90px;transform:scale(.8);transform-origin:left center}.shop-banner h2{font-size:18px;line-height:1.6;margin:5px 0}.shop-banner p{font-size:10px;line-height:1.8}.shop-banner .eyebrow{font-size:6px;letter-spacing:1.4px}.shop-banner-cta{grid-column:2;justify-self:start;font-size:10px;padding:6px 0}.resident-shop-link{width:100%}}
/* A daily visit, separate from the welfare games. */
.fortune-banner{display:grid;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:22px;margin-top:32px;padding:15px 30px 15px 22px;border:1px solid #ddcfe8;border-radius:16px;background:linear-gradient(115deg,#f0e7f7,#fbf6ee);box-shadow:0 7px 23px #92749f08;color:#80628f;transition:border-color .18s,box-shadow .18s}
.fortune-banner:hover{border-color:#bfa6ce;box-shadow:0 9px 25px #92749f12}.fortune-banner:focus-visible{outline:3px solid #b493c8;outline-offset:4px}
.fortune-banner-art{width:120px;height:120px}.fortune-banner-art canvas{display:block;width:100%;height:100%}
.fortune-banner-copy .eyebrow{font-size:8px;letter-spacing:2px;color:#a38aad}.fortune-banner-copy h2{margin:7px 0;font:500 25px/1.35 var(--serif);letter-spacing:-.5px}.fortune-banner-copy p{margin:0;color:#a08aa8;font-size:12px;line-height:1.7;word-break:keep-all}
.fortune-banner-action{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:12px 18px;border:1px solid #ded1e5;border-radius:24px;background:#fffaf5;color:#8a6e99;font-size:11px;white-space:nowrap}.fortune-banner-action>span{color:#ac8fba}
[data-view=welfare]>.fortune-banner{margin:0 0 25px}
@media(max-width:650px){.fortune-banner{grid-template-columns:82px minmax(0,1fr);gap:10px 14px;margin-top:25px;padding:18px 16px}.fortune-banner-art{grid-row:1/3;width:82px;height:100px;align-self:center}.fortune-banner-art canvas{height:82px;margin-top:9px}.fortune-banner-copy .eyebrow{font-size:7px;letter-spacing:1.4px}.fortune-banner-copy h2{font-size:21px;margin:5px 0}.fortune-banner-copy p{font-size:10px}.fortune-banner-action{grid-column:2;justify-self:start;padding:8px 13px;gap:15px;font-size:10px}[data-view=welfare]>.fortune-banner{margin-bottom:21px}}
/* The little castle: flat storybook artwork, with an open scene on small screens. */
.hero{background:#ece0f6}
.hero-image{object-position:50% 50%}
.hero-shade{background:linear-gradient(90deg,#fbf3fc9c 0%,#f7edfb40 38%,transparent 61%)}
.hero-copy{color:#5c416e}
.hero-kicker{color:#775d89}
.hero-kicker i{background:#aa82bb;box-shadow:none}
.hero h1{text-shadow:none}
.hero-copy p{color:#705c7d}
.hero-link{color:#664575}
.hero-link span{color:#866096}
.hero-bottom{color:#735c80}
@media(max-width:760px){
 .hero{min-height:0}
 .hero-image{height:245px;object-position:94% 50%}
 .hero-shade{height:260px;background:linear-gradient(0deg,#ece0f6 0%,#ece0f600 27%)}
 .hero-copy{padding:251px 24px 28px;color:#5c416e}
 .hero-kicker{color:#775d89}
 .hero-copy p{color:#705c7d}
 .hero-link{color:#664575}
}
/* A daily welcome from the castle's little butler. */
.attendance-home{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;padding:12px 18px;background:#f3e8f5;border:1px solid #dfcbe7;border-radius:13px;color:#886992;text-decoration:none;font-size:13px;white-space:nowrap}.attendance-home small{font-size:10px;color:#aa8eb1}@media(max-width:760px){.welcome-strip{flex-wrap:wrap}.welcome-strip .attendance-home{margin:0 0 0 auto;flex-direction:row;gap:10px;padding:9px 15px}}
.lumi-letter-head{display:flex;align-items:center;gap:18px;max-width:780px;margin:0 auto 28px;padding:22px 26px;background:#f1eaf4;border:1px solid #ded0e5;border-radius:20px}.lumi-letter-head canvas{flex:none}.lumi-letter-head small{display:block;font-size:10px;letter-spacing:1px;color:#9a80a4}.lumi-letter-head b{display:block;margin:5px 0;font-size:18px;color:#715580}.lumi-letter-head p{margin:6px 0 0;font-size:12px;line-height:1.7;color:#8c7695}.notice-author{display:block;margin:0 0 12px;color:#9a7caa;font-size:11px}.notice-body p{line-height:1.95}.notice-list summary b{flex:1}.notice-list summary>span:last-child{margin-left:auto}@media(max-width:600px){.lumi-letter-head{padding:16px 14px;gap:8px}.lumi-letter-head b{font-size:16px}.lumi-letter-head p{font-size:11px}}

.notice-list{max-width:780px}.notice-list .notice-body{color:#8a7395}.notice-list .notice-author{color:#a58aaf}.notice-list summary{gap:10px}@media(max-width:600px){.notice-list summary{padding:17px 14px}.notice-list summary b{font-size:12px}.notice-list details>.notice-body{margin:0 16px;font-size:12px}}

.lumi-smile{white-space:nowrap}.lumi-letter-head p{word-break:keep-all}

/* The royal portrait remains exclusive even when ordinary residents visit the picker. */
.royal-chip{background:linear-gradient(120deg,#fcf0d6,#eee2f5);border-color:#d7bd87;color:#826286}
.avatar-picker{flex-wrap:wrap}.avatar-picker button[data-avatar="100"]{flex:0 0 100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 12px;border:1px solid #dfc992;background:linear-gradient(110deg,#fbf3df,#f3e9f7);border-radius:12px}.avatar-picker button[data-avatar="100"] canvas{margin:0}.avatar-picker button[data-avatar="100"] span{font-size:11px;color:#8f6d98}.avatar-picker button[data-avatar="100"].selected{border-color:#b79ac6;box-shadow:inset 0 0 0 1px #c6acd2}.avatar-picker button[hidden]{display:none!important}.faction-picker button:disabled{opacity:.45;cursor:default}

.royal-security{margin:24px 0 12px;padding:15px 18px;border:1px solid #decee6;border-radius:13px;background:#fcf8ff;color:#775783}.royal-security summary{font-size:12px;font-weight:700;cursor:pointer}.royal-security>p{font-size:11px;line-height:1.8;color:#927b9f}.royal-security label{display:block;margin:13px 0 7px;font-size:11px}.royal-security input{width:100%;min-width:0;border:1px solid #d7c5e1;background:#fffdfa;border-radius:9px;padding:12px;color:#5d426b;font-family:inherit;font-size:16px;line-height:1.4}.royal-security .button{margin-top:18px;width:100%;justify-content:center}.pin-input.password-input{letter-spacing:1.5px}.royal-security .field-note{margin:7px 0 10px}
@media(max-width:760px){.royal-security{order:2;width:100%;margin:0}}

/* Keep the invitation's three lines close and let card titles breathe evenly. */
.resident-invite>div{display:flex;flex-direction:column;gap:4px;min-width:0}.resident-invite small{line-height:1.4;margin:0}.resident-invite h3{margin:0;line-height:1.4}.resident-invite p{margin:0;line-height:1.45}.game-card-copy h3{line-height:1.45;margin:4px 0 6px}.game-card-copy p{line-height:1.65}.game-card-copy>small{line-height:1.4}.hero-image-night{display:none}

.profile-form .profile-lock-note{font-size:12px;line-height:1.7;color:#775384;background:#f1e8f5;border-left:3px solid #ad8fbe;border-radius:7px;padding:12px 14px;margin:0 0 22px}.profile-form button:is([data-avatar],[data-faction],[data-theme]):disabled{cursor:default}.profile-form button.selected:disabled{opacity:1}:root[data-theme=dark] .profile-form .profile-lock-note{color:#f0dff8;background:#36283f;border-left-color:#b899cc}
.pepero-art{background:#f7e6eb}.pepero-art .game-badge{background:#fff4ed;color:#a17183}:root[data-theme=dark] .pepero-art{background:#493342}
