*{box-sizing:border-box}html{background:#fbf7ed;color:#183f35;font:16px/1.5 system-ui,sans-serif}body{margin:0}header,main,footer,#error{width:min(1080px,90%);margin:auto}header,footer{display:flex;align-items:center;justify-content:space-between;padding:22px 0;border-bottom:1px solid #bec9b9}header span,.tag,.num{font:700 .73rem/1.5 monospace;letter-spacing:.12em}.brand{display:flex;align-items:center;gap:12px;font-weight:750;text-decoration:none;color:inherit}.brand b{font-size:28px;background:#204b3c;color:#f8e9c8;padding:0 8px;border-radius:9px}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:6%;align-items:center;padding:65px 0 55px}h1,h2,h3,p{margin:.3em 0 .65em}h1,h2,h3{font-family:Georgia,serif;line-height:1.08}h1{font-size:clamp(2.6rem,6.4vw,5.8rem);font-weight:500;letter-spacing:-.055em}h1 em{color:#aa4238;font-weight:400}h2{font-size:clamp(1.8rem,4vw,2.7rem)}h3{font-size:1.45rem}.lead{color:#4a6357;max-width:44ch;font-size:1.1rem}.tag{color:#696b53}.btn,button{font:650 1rem system-ui;border:0;border-radius:9px;background:#245341;color:white;text-decoration:none;padding:14px 21px;cursor:pointer;display:inline-block;margin:8px 6px 4px 0}.quiet{background:#e9ecdf;color:#234435}.art{display:grid;place-items:center;aspect-ratio:1.35;background:radial-gradient(circle,#dbebcf 1px,transparent 1.7px) 0 0/30px 30px,#234a3e;border-radius:50% 50% 12px 12px;overflow:hidden}.mail{position:relative;width:73%;aspect-ratio:1.65;background:#ead6ae;box-shadow:0 12px 24px #0d281e70;transform:rotate(-9deg);display:grid;place-items:center;border:6px solid #efdfbe;isolation:isolate}.mail:before{content:"";position:absolute;inset:0;background:#faf0d6;clip-path:polygon(0 0,100% 0,50% 68%);z-index:-1}.seal{border:4px double #edb2a0;border-radius:50%;font:32px Georgia;color:#f8d2ac;background:#a53a34;padding:0 7px;transform:translateY(25%)}.mail small{position:absolute;bottom:4%;right:4%;font:9px monospace;letter-spacing:1px}.steps,.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.steps article,.box,.stats>div{background:#fffdf6;border:1px solid #ced4c4;border-radius:14px;padding:23px}.num{color:#aa4238}.steps article p,small{color:#53685b}.steps{margin:18px 0 50px}.inner{max-width:740px;margin:40px auto}.box{margin:16px 0}.box h2{font-size:1.85rem}label{display:block;font-weight:650;margin:15px 0 5px}input,select,textarea{width:100%;font:inherit;padding:11px;border:1px solid #a9b5a5;border-radius:7px;background:#fffefa;color:#1e3c2e}textarea{min-height:75px}input:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ac6437;outline-offset:3px}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stats{grid-template-columns:1fr 1fr}.stats strong{display:block;font:600 1.25rem Georgia}.note{border-left:3px solid #b45242;padding-left:12px;color:#546456}.letter{border-top:6px solid #a84338;background:#fff7e4;white-space:pre-wrap}.room{overflow-wrap:anywhere}footer{border:0;border-top:1px solid #bec9b9;font-size:.84rem;margin-top:34px}footer i{color:#617062}#error:not(:empty){padding:12px;color:#8d2523;background:#ffede4;position:sticky;bottom:8px;border-radius:8px}button:disabled{opacity:.55;cursor:default}[hidden]{display:none!important}@media(max-width:680px){.hero{grid-template-columns:1fr;padding:34px 0 24px;gap:22px}.art{max-height:175px;width:100%;aspect-ratio:auto;border-radius:80px 15px 15px 15px}.mail{width:185px;margin:26px}.steps,.row{grid-template-columns:1fr}.row{gap:0}.steps{gap:9px}.steps article,.box,.stats>div{padding:16px}header span{font-size:.58rem}.inner{margin:23px auto}.stats{gap:8px}footer i{font-size:.72rem}}

/* Illustrated home, scaled to the proportions of the approved artwork. */
:root{--paper:#fbefda;--ink:#112010;--berry:#b30029}
body{background:var(--paper);min-height:100vh}
header{width:100%;padding:5px 3%;min-height:3.85vw;border-bottom:1px solid #e9d7bd;color:var(--ink)}
.brand,.how{font:700 clamp(20px,2.45vw,44px)/1.1 Georgia,serif;color:inherit;text-decoration:none}
.brand img{width:clamp(32px,3.12vw,54px);height:auto;border-radius:6px}.how{font-size:clamp(16px,1.55vw,26px)}
:root{--shell:min(93%,1540px,188svh);--bar:clamp(48px,6.5svh,68px)}
body{min-height:100svh}
header{width:var(--shell);height:var(--bar);min-height:0;padding:0}
.brand{font-size:clamp(21px,2.8svh,30px)}
.brand img{width:34px;height:34px}.how{font-size:17px}
main:has(.christmas-hero){width:var(--shell);display:grid;gap:clamp(16px,2.3svh,27px);padding:clamp(14px,2svh,24px) 0}
.christmas-hero{display:grid;grid-template-columns:39% 61%;color:var(--ink);background:#f8ead6;border:1px solid #ddcbb2;border-radius:16px;overflow:hidden}
.christmas-scene{grid-area:1/2;width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 48%}
.christmas-copy{grid-area:1/1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:clamp(9px,1.6svh,19px);padding:clamp(16px,2.6vw,46px);min-width:0}
.handwriting{font:italic clamp(16px,1.95svh,21px)/1.25 Georgia,serif;color:#981f37}
.christmas-copy h1{font:700 clamp(38px,min(4.5vw,7svh),78px)/.98 Georgia,serif;letter-spacing:-.045em;margin:0}
.christmas-copy p{font:400 clamp(16px,2.05svh,21px)/1.42 system-ui;max-width:34ch;margin:0}
.christmas-copy button{background:var(--berry);font:650 clamp(16px,1.75svh,19px)/1.2 system-ui;padding:13px 20px;border-radius:9px;margin:0}
.christmas-copy button:hover{background:#940226}
.christmas-guide{text-align:center;display:flex;flex-direction:column;min-height:0;color:var(--ink)}
.christmas-guide small{font:750 11px/1.3 system-ui;letter-spacing:.15em;color:#9c2137;text-transform:uppercase}
.christmas-guide h2{font:700 clamp(24px,3.6svh,40px)/1.15 Georgia,serif;letter-spacing:-.035em;margin:4px 0 clamp(10px,1.5svh,18px)}
.guide-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1.2vw,20px);min-height:0;flex:1}
.guide-cards figure{display:flex;flex-direction:column;min-height:0;margin:0;background:#fbefdf;border-radius:12px;overflow:hidden;border:1px solid #dfd1bb}
.guide-cards img{display:block;width:100%;height:auto;min-height:0;object-fit:cover;aspect-ratio:2/1}
.guide-cards figcaption{font:700 clamp(17px,2.1svh,23px)/1.2 Georgia,serif;padding:9px 4px}
@media(min-width:960px) and (min-height:600px){
 main:has(.christmas-hero){height:calc(100svh - var(--bar));grid-template-rows:minmax(0,1.55fr) minmax(0,1fr)}
 .guide-cards img{height:0;flex:1}
}
@media(max-width:959px),(max-height:599px){
 :root{--shell:min(94%,1120px)}
 .christmas-scene{min-height:260px}.christmas-copy{padding:20px}
}
@media(max-width:700px){
 .christmas-hero{display:flex;flex-direction:column}.christmas-copy{order:-1;padding:21px;gap:12px}
 .christmas-scene{height:auto;min-height:0;aspect-ratio:1.65;object-position:center}
 .guide-cards{grid-template-columns:1fr;gap:14px}.guide-cards figcaption{padding:11px}
 .brand{gap:6px}.brand img{width:29px;height:29px}.how{font-size:15px}
}
@media(min-width:960px) and (min-height:600px){
 .christmas-hero{grid-template-rows:minmax(0,1fr)}
 .christmas-copy{padding:clamp(14px,2.8svh,35px)}
}
/* Decorative ink lives inside the unoccupied margins of the landing page. */
@media(min-width:1200px) and (min-height:600px){
 body:has(.christmas-hero)::before,body:has(.christmas-hero)::after{
   content:"";position:fixed;inset-block:0;width:calc((100% - var(--shell))/2 - 8px);
   background:url("/art/winter-margin.svg") left center / 100% 100% no-repeat;
   pointer-events:none;opacity:.83
 }
 body:has(.christmas-hero)::before{left:0}
 body:has(.christmas-hero)::after{right:0;transform:rotate(180deg)}
}
.guide-cards figcaption{font-variant-numeric:lining-nums}
.guide-cards figure:last-child figcaption{padding-top:11px;padding-bottom:7px}
@media(max-width:700px){.guide-cards figure:last-child figcaption{padding-top:13px;padding-bottom:9px}}

/* Keep the decorative layers outside the button's hit testing and text flow. */
.christmas-copy .gift-button{
 position:relative;isolation:isolate;max-width:100%;padding:0;background:transparent;
 border-radius:10px;box-shadow:0 3px 9px #79251e29
}
.gift-label{
 position:relative;display:block;padding:13px 20px;border-radius:inherit;
 background:linear-gradient(165deg,#ae1635,#8f0a26);border:1px solid #a77637;
 box-shadow:inset 0 0 0 2px #9c1030,inset 0 0 0 3px #dab978;color:#fff;
}
.kitten-window,.gift-light,.kitten,.kitten-caught{position:absolute;pointer-events:none}
.kitten-window,.gift-light{display:none}
.christmas-copy .gift-button:active .gift-label{background:#90102a;box-shadow:inset 0 0 0 2px #edc783,0 0 12px #ecc46b}
.gift-button:focus-visible{outline:3px solid #904415;outline-offset:4px}
.gift-light{
 display:block;top:0;left:0;width:5px;height:5px;border-radius:50%;
 background:#fff9d0;box-shadow:0 0 4px 2px #ffcf78,0 0 10px 3px #eda84099;
 offset-path:inset(1px round 9px);offset-distance:0%;offset-rotate:0deg;
 animation:gift-orbit 3.2s linear infinite
}
@keyframes gift-orbit{to{offset-distance:100%}}
@media(hover:hover) and (pointer:fine){
 .christmas-copy .gift-button{margin-top:clamp(36px,5.8svh,65px)}
 .kitten-window{display:block;bottom:calc(100% - 2px);right:0;
   width:clamp(94px,11svh,124px);aspect-ratio:272/152;overflow:hidden;z-index:0}
 .gift-label{z-index:1}.gift-light{z-index:2}
 .kitten{inset:0;transform:translateY(59%);transition:transform .34s cubic-bezier(.2,.8,.25,1)}
 .kitten::before,.kitten-caught{content:"";position:absolute;inset:0;background:center top / 100% auto no-repeat}
 .kitten::before{background-image:url("/art/kitten-peek.webp");transition:opacity .1s}
 .kitten-caught{background-image:url("/art/kitten-caught.webp");opacity:0;transition:opacity .1s}
 .gift-button.hunting .kitten{transform:none}
 .gift-button.hunting .kitten::before{opacity:0;transition-delay:.48s}
 .gift-button.hunting .kitten-caught{opacity:1;transition-delay:.48s}
}
@media(prefers-reduced-motion:reduce){
 .gift-button *,.kitten::before{animation:none!important;transition:none!important}
 .gift-light{offset-distance:36%}
}
@media(max-width:700px){
 body:has(.christmas-hero)::before,body:has(.christmas-hero)::after{
   content:"";position:fixed;top:0;bottom:0;width:3%;pointer-events:none;opacity:.72;
   background:url("/art/winter-margin.svg") left top / 90px 64svh repeat-y
 }
 body:has(.christmas-hero)::before{left:0}
 body:has(.christmas-hero)::after{right:0;transform:rotate(180deg)}
}

main:has(.invite-sheet){width:min(94%,1380px);margin:clamp(10px,2svh,24px) auto 18px}
.invite-sheet{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);border:1px solid #dbcab1;border-radius:18px;overflow:hidden;background:#fff7e9;color:#172c20}
.invite-paper{padding:clamp(19px,3vw,44px)}
.back-home{display:inline-block;color:#34533e;font-weight:650;text-underline-offset:4px}
.invite-paper h1{font:700 clamp(32px,3.7vw,60px)/1.04 Georgia,serif;letter-spacing:-.045em;margin:14px 0 6px}
.invite-intro{color:#53604d;margin:0 0 18px}
.invite-paper form{display:grid;gap:clamp(12px,2svh,20px)}
.invite-row,.modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.invite-row>div,.invite-paper fieldset{min-width:0}
.invite-row>div{display:flex;flex-direction:column;justify-content:space-between}
.invite-paper fieldset{padding:0;border:0;margin:0}
.invite-paper label,.invite-paper legend{margin:0 0 5px;font:650 15px/1.35 system-ui;padding:0}
.invite-paper input,.invite-paper select{min-width:0;max-width:100%;min-height:44px}
.modes label{position:relative;display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;border:1px solid #cdbc9f;border-radius:10px;cursor:pointer;background:#faf3e8;font:700 clamp(16px,1.5vw,21px)/1.1 Georgia,serif}
.modes img{width:clamp(34px,4.5vw,65px);aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply}
.modes input{width:16px;height:16px;min-height:0;flex:none;accent-color:#35543b;order:3;margin:0 0 0 auto}
.modes label:has(:checked){border-color:#506b42;background:#eaf0dd;box-shadow:inset 0 0 0 1px #506b42}
.invite-art{background:url('/art/desk.webp') center center / cover no-repeat}
.stamp-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;margin:2px 0 0;padding:10px 18px;border:1px solid #b2833e;background:linear-gradient(165deg,#b31737,#880b26);border-radius:10px;box-shadow:inset 0 0 0 2px #9d1731,inset 0 0 0 3px #dfbc7a;color:white}
.stamp-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:45% 50% 47% 48%;border:3px double #df9e78;background:#932e30;color:#ffe2b6;box-shadow:1px 2px 3px #5a091e80;transition:transform .18s}
.stamp-button:hover .stamp-icon{transform:rotate(-10deg)}
.stamp-button:active .stamp-icon,.stamp-button:disabled .stamp-icon{transform:translateY(2px) scale(.87)}
@media(max-width:900px){.invite-sheet{grid-template-columns:minmax(0,1fr) 28%}.invite-paper{padding:20px}}
@media(max-width:700px){.invite-sheet{display:flex;flex-direction:column}.invite-art{order:-1;height:clamp(92px,15svh,140px);background-position:center 39%}.invite-paper{padding:16px}.invite-paper h1{font-size:clamp(32px,7vw,44px)}.invite-row{grid-template-columns:1fr}.modes label{padding:9px 7px;gap:5px;flex-wrap:wrap}.modes img{width:32px}.modes span{order:4;width:100%}.invite-paper select{font-size:16px}.stamp-button{padding-inline:9px}}
@media(prefers-reduced-motion:reduce){.stamp-icon{transition:none}}
header nav{display:flex;gap:12px;align-items:center}header nav a,.nav-account{color:#254735;font:650 15px system-ui}.nav-account{background:#eee4cf;padding:8px 12px;margin:0}
body:has(.invite-sheet),body:has(.lounge){background-color:#f8ebd5;background-image:url('/art/winter-margin.svg'),url('/art/winter-margin.svg'),radial-gradient(ellipse at 50% 15%,#fffaf0,#eddbb9);background-position:left top,right bottom,center;background-size:clamp(80px,13vw,240px) auto,clamp(80px,10vw,180px) auto,cover;background-repeat:repeat-y,repeat-y,no-repeat}
.invite-sheet,.lounge .box{box-shadow:0 6px 22px #65412114}.invite-paper{background:radial-gradient(ellipse at top right,#ecc88e55,transparent 38%),linear-gradient(125deg,#fff8e8,#f9ecda)}
.invite-paper .stamp-button{position:relative;width:100%;border:0;padding:0;background:none;box-shadow:none}
.stamp-button img{width:100%;height:auto;display:block}.stamp-label:not(:empty){position:absolute;inset:0;display:grid;place-items:center;background:#871025;border-radius:44px}
main:has(.lounge){width:min(95%,1536px);margin:18px auto}.lounge{overflow-wrap:anywhere}.lounge-banner{border-radius:18px;overflow:hidden;background:#e9d5b6 url('/art/lounge.webp') right center/auto 100% no-repeat}
.lounge-banner>div{padding:clamp(22px,4vw,55px);background:linear-gradient(90deg,#f9eedb 38%,transparent 76%);min-height:200px}
.lounge-banner h1{font:700 clamp(30px,4vw,58px)/1.1 Georgia,serif;max-width:52%;margin:14px 0}.lounge a,.holiday-link a{color:#204b38}.lounge-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.45fr) minmax(0,1fr);gap:14px;align-items:start}.lounge .box{background:#fff6e6;border:1px solid #d6bd95}.lounge .box h2{font-size:clamp(23px,2.1vw,34px)}.lounge .box p{white-space:pre-wrap}.lounge summary{cursor:pointer;font-weight:650}.sealed-letter{width:100%;border-radius:12px}.lounge button,.nav-account{white-space:normal}.lounge .letter{white-space:normal}
#messages{max-height:420px;overflow:auto}#messages article{background:#f3e5cf;padding:10px;border-radius:8px;margin-bottom:8px}#messages p{margin:5px 0}.holiday-link small{display:block}
dialog{width:min(94vw,440px);border:1px solid #d8ba8b;border-radius:18px;background:#fff7e9;color:#244431;padding:26px}dialog::backdrop{background:#193b2dbc}#closeAccount{float:right;margin:0;background:#e8ddc8;color:#345;font-size:21px;padding:4px 12px}#accountError{color:#9d2136}dialog h2{font-size:32px}
@media(max-width:1000px){.lounge-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr)}.chat-box{grid-column:1/-1}}
@media(max-width:700px){header nav{gap:6px}header nav a,.nav-account{font-size:13px}.brand{font-size:17px}.lounge-grid{display:flex;flex-direction:column;gap:0}.lounge-grid>*{width:100%}.lounge-banner>div{padding:18px;min-height:150px;background:linear-gradient(90deg,#f9eedb 45%,#f9eedb55 72%)}.lounge-banner h1{max-width:62%}.lounge-banner p{max-width:60%}.stamp-button{min-height:44px}.lounge .box{margin:10px 0}.chat-box:has(#message){position:fixed;inset:0;z-index:20;margin:0;overflow:auto;padding-bottom:env(safe-area-inset-bottom)}}
.parcel-notice{background:#e5f1dc;color:#29553c;padding:12px 16px;border:1px solid #aabd8b;border-radius:12px;font-weight:700}.mini{font-size:.8rem;margin:0 0 3px;padding:5px 9px}
body:has(.lounge) header{background:#183e2f;color:#fff8de;width:100%;padding:4px 3%;height:auto;min-height:54px;border-bottom:2px solid #af925c}
body:has(.lounge) header a{color:#fff8de}.lounge-banner a,.lounge-grid summary{font-weight:650}

/* Game room, desktop triptych and narrow-screen reading order. */
body:has(.game-sidebar){background:linear-gradient(90deg,#31221466,#60442733,#241b1355),url('/art/desk.webp') center 55%/cover fixed}
main:has(.game-sidebar){width:min(96%,1660px);margin:clamp(12px,2vw,30px) auto}
.lounge-grid:has(.game-sidebar){grid-template-columns:minmax(0,.92fr) minmax(0,1.64fr) minmax(0,1fr);gap:clamp(10px,1.2vw,21px)}
.game-cat{display:block;width:100%;aspect-ratio:2.85;object-fit:cover;border-radius:15px 15px 0 0}
.lounge .box{margin:0 0 14px;border:1px solid #bb965f;border-radius:16px;background:linear-gradient(130deg,#fffaed,#f7e9d3);box-shadow:inset 0 0 0 4px #fff8ea,inset 0 0 0 5px #dcc79f,0 6px 18px #29140f29;padding:clamp(16px,1.6vw,28px)}
.game-facts h1{font:700 clamp(24px,2.5vw,43px)/1.08 Georgia,serif;margin:15px 0 4px}
.fact,.guest-list li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #d7bf982e}
.fact i,.guest-list i{display:grid;place-items:center;flex:none;width:33px;height:33px;border-radius:50%;font:18px Georgia;color:#945027;background:#efdfc7}
.fact b,.gift-strip small{display:block}.fact small,.game-facts>small{color:#64513b}.guest-list ul{padding:0;margin:0}.guest-list li{font-weight:650}
.lounge-center>.box:first-of-type{border-radius:0 0 16px 16px}
.lounge .letter{text-align:center}.lounge .letter h2{color:#891d2d}.sealed-letter{display:block;margin:12px auto;width:100%;max-height:310px;object-fit:contain}.lounge [data-act=open]{background:linear-gradient(160deg,#ae293b,#7a1023);border:2px solid #d6ae63;padding:12px 25px;border-radius:24px}
.gift-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.thread-menu{display:flex;gap:6px;flex-wrap:wrap}.thread-menu button,.gift-strip button{font-size:14px;padding:9px;margin:3px 0}
.chat-box #messages article{max-width:91%;border:1px solid #e2ceb1}.chat-box #messages .msg-mine{margin-left:auto;background:#e7ecd9}.chat-box #messages .msg-system{background:#f9decc}.chat-box #messages .msg-host{background:#e3ebee}
@media(min-width:1001px){.lounge .chat-box{position:sticky;top:10px}.chat-box #messages{max-height:38svh}}
@media(max-width:1000px){.lounge-grid:has(.game-sidebar){grid-template-columns:minmax(0,.82fr) minmax(0,1.25fr)}}
@media(max-width:700px){.lounge-grid:has(.game-sidebar){display:flex}.lounge .game-sidebar{display:contents}.game-facts{order:0;width:100%}.lounge-center{order:1}.chat-box{order:2}.guest-list{order:3;width:100%}.chat-box:has(#message){border-radius:0}.game-cat{aspect-ratio:3}.gift-strip button{min-height:44px}}

body:has(.game-sidebar){background:#563f2b linear-gradient(110deg,#342c23,#835530 50%,#392d22)}
main:has(.game-sidebar){width:96%;max-width:2000px}
.lounge-grid:has(.game-sidebar){grid-template-columns:minmax(0,.94fr) minmax(0,1.65fr) minmax(0,.98fr)}
.game-facts{position:relative}.game-facts:before{content:"";position:absolute;pointer-events:none;left:-9px;top:-11px;width:80px;height:38px;background:url('/art/ribbon.webp') center/contain no-repeat;mask-image:radial-gradient(ellipse,#000 46%,transparent 74%)}
.game-facts h1{margin-top:12px}.guest-list .guest-state{margin-left:auto;font:600 13px system-ui;color:#37593d}
.guest-list li i{font-size:0;background:url('/art/roster-icons.webp') center 1%/36px auto no-repeat;width:36px;height:36px}.guest-list li:nth-child(5n+2) i{background-position:center 20%}.guest-list li:nth-child(5n+3) i{background-position:center 40%}.guest-list li:nth-child(5n+4) i{background-position:center 60%}.guest-list li:nth-child(5n+5) i{background-position:center 80%}
.winter-tag{display:inline-block;color:#274431;background:#e4ebca;border:1px solid #c4b988;border-radius:30px;padding:5px 15px;margin-bottom:12px}
.lounge .letter{background:radial-gradient(ellipse at center,#fff9e9,#f5dfbe)}.lounge .letter h2{font-size:clamp(25px,2.6vw,47px)}.lounge .sealed-letter{width:100%;border-radius:3px;mask-image:linear-gradient(transparent,#000 5%,#000 94%,transparent)}
.lounge [data-act=open]{width:min(90%,415px);aspect-ratio:415/86;padding:0;border:0;background:transparent url('/art/open-letter.webp') center/100% 100% no-repeat;color:transparent;border-radius:40px}.gift-strip{margin-top:-6px!important}
.chat-box .thread-menu button[aria-pressed=true]{background:#294d35;color:white}.chat-box .thread-menu button[aria-pressed=false]{background:#eee0c9;color:#284633}
.chat-box #chatPanel:has(#message){display:flex;flex-direction:column}.chat-box #messages{min-height:210px;max-height:44svh;flex:1}.chat-box #message{display:flex;align-items:center;gap:6px;border-top:1px solid #d2b990;padding-top:10px}.chat-box #message textarea{min-height:44px;height:44px}.chat-box #message button{background:#971c32;color:white;padding:10px;margin:0}.chat-box [data-act=close-chat]{align-self:flex-start}
@media(min-width:1001px){.chat-box [data-act=close-chat]{display:none}.lounge .chat-box:has(#message){min-height:65svh;display:flex;flex-direction:column}.chat-box #chatPanel{flex:1}}
@media(max-width:1000px){.lounge-grid:has(.game-sidebar){grid-template-columns:minmax(0,.82fr) minmax(0,1.25fr)}}
body:has(.game-sidebar){background-color:#463627;background-image:linear-gradient(#372b1f55,#60442677),url('/art/lounge.webp');background-size:cover;background-attachment:fixed;background-position:center top}

/* Refined holiday room: quiet photographic backdrop, clear paper surfaces and generous rhythm. */
body:has(.game-sidebar){
 background-color:#171b14;
 background-image:linear-gradient(180deg,#10171240,#17171222 48%,#1717124d),url('/art/holiday-room.webp');
 background-size:cover;background-attachment:fixed;background-position:center 54%;
}
body:has(.game-sidebar) header{min-height:66px;padding:7px clamp(20px,4vw,68px);border-bottom:1px solid #b89354;background:#10382bdc;backdrop-filter:blur(10px)}
body:has(.game-sidebar) .brand{font:700 clamp(22px,2.1vw,32px)/1.1 Georgia,serif;gap:10px}
body:has(.game-sidebar) .brand img{width:38px;height:38px}
body:has(.game-sidebar) header nav{gap:18px}
body:has(.game-sidebar) header nav a{color:#fff1d1}
body:has(.game-sidebar) .nav-account{background:#f5e6c7;color:#1d3a2d;border-radius:10px;padding:9px 15px}
main:has(.game-sidebar){width:min(94%,1660px);margin:clamp(18px,2.5vh,34px) auto 48px}
.lounge-grid:has(.game-sidebar){grid-template-columns:minmax(255px,.92fr) minmax(420px,1.64fr) minmax(300px,1fr);gap:clamp(14px,1.35vw,22px);align-items:start}
.lounge .box{border:1px solid #d6b678;border-radius:19px;background:linear-gradient(145deg,#fff9ecf5,#f5e6d0f5);box-shadow:inset 0 0 0 3px #fff8eb,0 12px 30px #120e0960;padding:clamp(18px,1.8vw,29px)}
.game-facts h1{font-size:clamp(31px,2.65vw,45px);margin:14px 0 3px}
.game-facts>small{font-size:14px;color:#74634c}
.fact{gap:12px;padding:12px 0;border-bottom-color:#8e744326}
.fact i{width:38px;height:38px;background:#efe0c8;color:#945126;font-size:19px}
.fact small{font-size:13px;color:#6f604e}
.fact b{font-size:16px;color:#142f23}
.guest-list h3{font-size:clamp(20px,1.5vw,25px);margin:0 0 12px}
.guest-list li{gap:12px;padding:11px 0;border-bottom-color:#8e744326;font-size:15px}
.guest-list .guest-state{padding:4px 10px;border-radius:30px;background:#e4ebd3;color:#34583a;font-weight:700}
.lounge-center{min-width:0}
.game-cat{aspect-ratio:2.85;border-radius:19px 19px 0 0;box-shadow:0 8px 20px #100c0850;object-position:center 49%}
.lounge-center>.parcel-notice{margin:0 0 10px;padding:12px 18px;border-radius:12px;background:#e8efdc;border:1px solid #bdc99f;color:#345a3d;box-shadow:0 7px 18px #100c0830}
.lounge-center>.box:first-of-type{border-radius:0 0 19px 19px}
.lounge .letter{padding:clamp(22px,2.4vw,38px);text-align:center;background:radial-gradient(ellipse at 50% 0,#fffdf4,#f7e6cc 76%);white-space:normal}
.lounge .letter h2{font-size:clamp(31px,3.1vw,49px);line-height:1.08;color:#8f1a2c;margin:12px 0 22px}
.winter-tag{font-size:13px;font-weight:750;letter-spacing:.02em;padding:8px 16px;margin-bottom:8px}
.sealed-letter-box>p{font-size:16px;color:#415443;margin:0 0 18px}
.envelope-open-card{display:block;width:100%;margin:0;padding:0 0 12px;border:1px solid #d8bf91;border-radius:16px;overflow:hidden;background:#f7e9d5;color:#1e3b2b;box-shadow:0 5px 17px #47311626;cursor:pointer}
.envelope-open-card:hover{background:#fff3df;box-shadow:0 9px 24px #47311636}
.envelope-open-card:focus-visible{outline:3px solid #b17b36;outline-offset:3px}
.envelope-open-card .sealed-letter{display:block;width:100%;max-height:clamp(210px,33svh,390px);margin:0 auto 10px;object-fit:cover;border-radius:0;mask-image:none}
.envelope-open-card span{display:block;padding:4px 14px 0;font:700 clamp(15px,1.4vw,19px)/1.3 Georgia,serif}
.recipient-card .tag{display:inline-block;font-size:12px;color:#705c3b;letter-spacing:.15em}
.recipient-card .wish-note{max-width:52ch;margin:0 auto 13px;padding:14px 18px;border:1px solid #ddc69d;border-radius:13px;background:#fff9ee;text-align:left}
.recipient-card .wish-note b{display:block;color:#29513a;font-size:15px}
.recipient-card .wish-note p{margin:5px 0 0;color:#3c4638;line-height:1.55}
.recipient-card .avoid-note{background:#fbede1;border-color:#e3c2a7}
.recipient-card .avoid-note b{color:#8a2930}
.gift-strip{margin:10px 0 12px!important;min-height:82px}
.gift-strip>div{padding-left:3px}
.gift-strip b{font:700 clamp(17px,1.4vw,21px)/1.2 Georgia,serif;color:#203b2b}
.gift-strip small{margin-top:5px;color:#6a5c48;font-size:14px}
.gift-strip button{min-height:48px;padding:11px 18px;border:1px solid #a98a4e;border-radius:12px;background:linear-gradient(145deg,#244d38,#153a2d);box-shadow:0 3px 10px #17392835;color:#fff5dc;font-size:15px}
.gift-strip button:hover{background:linear-gradient(145deg,#315e45,#1b4835)}
.lounge-center details.box{margin-top:12px}
.lounge-center details summary{padding:2px 0;font-size:16px;color:#284632}
.lounge .chat-box{position:sticky;top:14px;min-height:min(72vh,780px);display:flex;flex-direction:column}
.chat-box h2{font:700 clamp(26px,2.2vw,35px)/1.1 Georgia,serif;color:#183b2c;margin:0 0 16px}
.thread-menu{gap:8px;margin-bottom:6px}
.thread-menu button{min-height:42px;margin:0;padding:9px 13px;border-radius:10px;font-size:14px}
.chat-box #chatPanel{display:flex;flex:1;min-height:0;flex-direction:column}
.chat-box #chatPanel h3{font-size:21px;color:#244936;margin:10px 0 8px}
.chat-box #messages{display:flex;flex:1;flex-direction:column;gap:9px;min-height:200px;max-height:50vh;padding:5px 3px 8px;overflow:auto;overscroll-behavior:contain}
.chat-box #messages article{max-width:92%;margin:0;padding:11px 13px;border:1px solid #e3ceb0;border-radius:13px;background:#f5e8d4;color:#26382c;font-size:14px;line-height:1.45}
.chat-box #messages article small{color:#776650}
.chat-box #messages article p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-box #messages .msg-mine{margin-left:auto;background:#e8eddc;border-color:#d2dcbf}
.chat-box #messages .msg-system{max-width:100%;background:#f8e3d5;border-color:#e8c9b2}
.chat-box #messages .msg-host{background:#e4edf0;border-color:#cedbdf}
.chat-box #message{gap:8px;margin-top:8px;padding-top:11px;border-top:1px solid #d8c39e}
.chat-box #message textarea{min-width:0;min-height:46px;height:46px;padding:10px 12px;border-radius:10px;background:#fffdf8;font-size:15px;resize:vertical}
.chat-box #message button{flex:none;width:46px;height:46px;margin:0;padding:0;border-radius:11px;background:#941d32;color:#fff5df;font-size:21px}
.chat-box [data-act=earlier]{align-self:flex-start}
.chat-box .quiet{background:#ece8d9;color:#244a37}
.chat-box .thread-menu [aria-pressed=true]{background:#234b37;color:#fff4d9;box-shadow:0 0 0 2px #c2944c}
.lounge .chat-box:has(#message){min-height:min(72vh,780px)}
@media(max-width:1150px) and (min-width:701px){
 .lounge-grid:has(.game-sidebar){grid-template-columns:minmax(240px,.85fr) minmax(0,1.4fr)}
 .lounge .game-sidebar{display:contents}
 .lounge .game-facts{grid-column:1;grid-row:1}
 .lounge-center{grid-column:2;grid-row:1 / span 2}
 .lounge .guest-list{grid-column:1;grid-row:2}
 .lounge .chat-box{grid-column:1/-1;grid-row:3;position:static;min-height:460px}
 .chat-box #messages{max-height:38vh}
}
@media(max-width:700px){
 body:has(.game-sidebar){background-attachment:scroll;background-position:center top}
 body:has(.game-sidebar) header{min-height:56px;padding:6px 14px}
 body:has(.game-sidebar) .brand{font-size:20px}
 body:has(.game-sidebar) .brand img{width:31px;height:31px}
 body:has(.game-sidebar) header nav{gap:6px}
 body:has(.game-sidebar) header nav a,body:has(.game-sidebar) .nav-account{font-size:12px;padding:7px 9px}
 main:has(.game-sidebar){width:min(94%,560px);margin:13px auto 30px}
 .lounge .game-facts{order:0}
 .game-cat{aspect-ratio:2.2;border-radius:15px 15px 0 0}
 .lounge .box{border-radius:15px;padding:17px}
 .lounge .letter{padding:20px 16px}
 .lounge .letter h2{font-size:clamp(30px,8vw,40px)}
 .envelope-open-card .sealed-letter{max-height:32svh}
 .gift-strip{align-items:flex-start}
 .gift-strip button{width:100%;min-height:48px}
 .lounge .chat-box:has(#message){position:fixed;inset:0;z-index:20;min-height:0;margin:0;padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));overflow:auto;border-radius:0}
 .chat-box #messages{max-height:none}
}
#main .lounge-center .sealed-letter-box{width:100%;min-width:0;text-align:center}
#main .lounge-center .envelope-open-card{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%!important;max-width:100%;min-width:0;margin:0;padding:12px 14px 16px;line-height:1.35}
#main .lounge-center .envelope-art-frame{position:relative;display:block;width:100%;max-width:100%;aspect-ratio:642/250;margin:0 auto;overflow:hidden;line-height:0}
#main .lounge-center .envelope-art-image{display:block!important;width:100%!important;height:100%!important;max-width:100%;max-height:none!important;aspect-ratio:642/250;object-fit:contain!important;object-position:center center;mask-image:none!important;clip-path:none!important;border-radius:0!important;padding:0!important;margin:0!important}
#main .lounge-center .envelope-open-label{display:block;width:100%;padding:0 8px;color:#244632;font:700 clamp(15px,1.4vw,19px)/1.3 Georgia,serif;text-align:center}
.thread-partner{display:flex;align-items:center;gap:12px;padding:11px 12px;margin:6px 0 10px;border:1px solid #decaab;border-radius:13px;background:#fff8eb}
.thread-partner>span{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:#f0e2ca;font-size:21px}
.thread-partner h3{margin:0;color:#234632;font:700 19px/1.2 Georgia,serif}
.thread-partner small{display:block;margin-top:3px;color:#74634b;font-size:12px;line-height:1.4}
.receipt-strip{display:flex;align-items:center;justify-content:space-between;gap:12px}
.receipt-strip>div{min-width:0}
.receipt-strip b{font:700 clamp(17px,1.4vw,21px)/1.2 Georgia,serif;color:#203b2b}
.receipt-strip small{display:block;margin-top:5px;color:#6a5c48;font-size:14px}
.receipt-strip button{flex:none;min-height:46px;margin:0;padding:10px 16px;border:1px solid #a98a4e;border-radius:11px;background:linear-gradient(145deg,#9a2033,#731629);box-shadow:0 3px 10px #5d142135;color:#fff5dc;font-size:14px}
.receipt-strip button:hover{background:linear-gradient(145deg,#af2b40,#851d31)}
.received-badge{flex:none;padding:8px 13px;border:1px solid #b9c99b;border-radius:24px;background:#e7efd9;color:#31563a;font-size:14px;font-weight:750}
@media(max-width:700px){.receipt-strip{align-items:flex-start;flex-direction:column}.receipt-strip button,.receipt-strip .received-badge{align-self:stretch;text-align:center}}

/* Room layout rebuilt around explicit breakpoints; the envelope is a plain, stable click target. */
body:has(.game-sidebar){
 background-color:#171b14;
 background-image:linear-gradient(180deg,#10171240,#17171222 48%,#1717124d),url('/art/holiday-room.webp');
 background-size:cover;background-position:center 54%;background-attachment:fixed;
 overflow-x:hidden;
}
main:has(.game-sidebar){width:min(96%,1600px);margin:clamp(14px,2.5vh,32px) auto 42px}
.lounge,.lounge-grid,.game-sidebar,.lounge-center,.lounge .chat-box{min-width:0;max-width:100%}
.lounge-grid:has(.game-sidebar){display:grid;grid-template-columns:minmax(250px,.9fr) minmax(0,1.62fr) minmax(290px,1fr);gap:clamp(12px,1.35vw,22px);align-items:start}
.lounge .game-sidebar{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.lounge .game-sidebar>.box,.lounge-center>.box,.lounge .chat-box{margin:0 0 14px}
.lounge-center{display:flex;flex-direction:column;align-items:stretch;gap:12px;width:100%}
.lounge-center>.game-cat{width:100%;height:auto;max-width:100%;aspect-ratio:2.85;object-fit:cover;object-position:center;border-radius:18px 18px 0 0}
.lounge-center>.parcel-notice{margin:0;width:100%}
.lounge-center>.box:first-of-type{border-radius:18px}
.lounge-center>.game-cat+.parcel-notice:not([hidden]){margin-top:-12px;border-radius:0 0 13px 13px}
#main .lounge-center .sealed-letter-box{width:100%;min-width:0;max-width:100%;margin:0;text-align:center;overflow:hidden}
#main .lounge-center .sealed-letter-box h2{max-width:22ch;margin:14px auto 16px;font-size:clamp(28px,3vw,44px);line-height:1.06;text-wrap:balance}
#main .lounge-center .sealed-letter-box>p{margin:0 auto 16px;color:#485643;font-size:clamp(14px,1.1vw,16px)}
#main .lounge .envelope-open-card[data-act=open]{
 appearance:none;-webkit-appearance:none;display:block!important;position:relative;width:min(100%,540px)!important;max-width:540px!important;min-width:0;height:auto!important;min-height:0!important;aspect-ratio:auto!important;
 margin:0 auto!important;padding:0!important;overflow:visible;border:0!important;border-radius:0!important;
 background:transparent!important;background-image:none!important;box-shadow:none!important;color:#163b2c!important;
 font:inherit;line-height:normal;text-align:center;white-space:normal!important;cursor:pointer;
}
#main .lounge .envelope-art-frame{display:block;position:relative;width:100%;max-width:100%;aspect-ratio:4/3;margin:0 auto;overflow:hidden;border:1px solid #d7b974;border-radius:17px;background:#f8ebd8;box-shadow:0 8px 24px #34211235;line-height:0}
#main .lounge .envelope-art-image{display:block!important;width:100%!important;height:100%!important;max-width:100%;max-height:none!important;aspect-ratio:4/3;object-fit:contain!important;object-position:center;mask:none!important;mask-image:none!important;clip-path:none!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important}
#main .lounge .envelope-open-card[data-act=open]:hover,#main .lounge .envelope-open-card[data-act=open]:active{background:transparent!important;background-image:none!important;color:#163b2c!important;box-shadow:none!important;filter:none!important;transform:none!important}
#main .lounge .envelope-open-card[data-act=open]:focus-visible{outline:3px solid #b58945!important;outline-offset:5px;border-radius:12px!important}
.lounge-center>.gift-strip,.lounge-center>.receipt-strip{width:100%;margin:0!important}
.lounge-center>details.box{width:100%;margin:0!important}
.lounge .chat-box{position:sticky;top:12px;min-height:0;height:min(78svh,820px);display:flex;flex-direction:column;overflow:hidden}
.chat-box #chatPanel{min-height:0;flex:1}
.chat-box #messages{min-height:0;max-height:none;flex:1;overscroll-behavior:contain;overflow-anchor:none}
.chat-box #messages article{flex:none}
.chat-box #message{flex:none}

@media(max-width:1199px) and (min-width:761px){
 main:has(.game-sidebar){width:min(96%,1050px)}
 .lounge-grid:has(.game-sidebar){grid-template-columns:minmax(225px,.78fr) minmax(0,1.22fr);gap:14px}
 .lounge .game-sidebar{display:contents}
 .lounge .game-facts{grid-column:1;grid-row:1}
 .lounge-center{grid-column:2;grid-row:1/span 2}
 .lounge .guest-list{grid-column:1;grid-row:2}
 .lounge .chat-box{grid-column:1/-1;grid-row:3;position:static;height:520px;min-height:0}
 .chat-box #messages{max-height:350px}
}
@media(max-width:760px){
 body:has(.game-sidebar){background-attachment:scroll;background-position:center top}
 body:has(.game-sidebar) header{width:100%;min-height:56px;height:auto;padding:7px 12px;gap:8px;flex-wrap:wrap}
 body:has(.game-sidebar) .brand{gap:7px;font-size:clamp(17px,4.8vw,22px);white-space:nowrap}
 body:has(.game-sidebar) .brand img{width:30px;height:30px}
 body:has(.game-sidebar) header nav{gap:5px;flex-wrap:wrap;justify-content:flex-end}
 body:has(.game-sidebar) header nav a,body:has(.game-sidebar) .nav-account{font-size:12px;padding:6px 8px;white-space:nowrap}
 main:has(.game-sidebar){width:min(calc(100% - 20px),620px);margin:10px auto 28px}
 .lounge-grid:has(.game-sidebar){display:flex;flex-direction:column;gap:10px}
 .lounge .game-sidebar{display:contents}
 .lounge .game-facts{order:0;width:100%}
 .lounge-center{order:1;width:100%;gap:10px}
 .lounge .chat-box{order:2;position:static;inset:auto;z-index:auto;width:100%;height:auto;min-height:0;margin:0 0 10px;padding:17px;overflow:visible;border-radius:15px}
 .lounge .guest-list{order:3;width:100%}
 .lounge-center>.game-cat{aspect-ratio:2.1;border-radius:15px 15px 0 0}
 .lounge .box{padding:clamp(15px,4vw,21px);border-radius:15px}
 #main .lounge-center .sealed-letter-box{padding:clamp(18px,5vw,25px)}
 #main .lounge-center .sealed-letter-box h2{font-size:clamp(27px,8vw,38px)}
 #main .lounge .envelope-open-card[data-act=open]{width:min(100%,480px)!important}
 .lounge .chat-box:has(#message){position:static;inset:auto;overflow:visible;padding-bottom:17px}
 .chat-box #messages{max-height:42svh;min-height:140px}
 .chat-box #message textarea{font-size:16px}
 .gift-strip,.receipt-strip{align-items:stretch}
 .gift-strip button,.receipt-strip button{width:100%;min-height:46px}
}

/* The envelope is artwork on the invitation paper itself, never a separate tile. */
#main .lounge-center .sealed-letter-box{
 position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;
 width:100%;min-height:clamp(570px,67svh,700px);padding:clamp(24px,3vw,38px) clamp(18px,3vw,38px) 30px;
 overflow:hidden;text-align:center;border-radius:19px;
 background:linear-gradient(180deg,#fbf1df 0%,#f8ead7 68%,#f7e7d0 100%);
}
#main .lounge-center .sealed-letter-box::before{
 content:"";position:absolute;z-index:0;pointer-events:none;left:0;right:0;bottom:0;height:64%;
 background:url('/art/envelope-cutout.webp') center bottom/92% auto no-repeat;
 mask-image:radial-gradient(ellipse 82% 78% at 50% 62%,#000 62%,#000d 78%,transparent 100%);
}
#main .lounge-center .sealed-letter-box>*:not(.envelope-open-card){position:relative;z-index:1}
#main .lounge-center .sealed-letter-box .winter-tag{margin:0 0 14px}
#main .lounge-center .sealed-letter-box h2{max-width:22ch;margin:0 auto 16px;text-wrap:balance}
#main .lounge-center .sealed-letter-box>p{margin:0 auto;color:#485643}
#main .lounge .envelope-open-card[data-act=open]{
 appearance:none;-webkit-appearance:none;display:block!important;position:absolute;z-index:2;
 inset:48% 8% 3%;width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:none!important;aspect-ratio:auto!important;
 margin:0!important;padding:0!important;border:0!important;border-radius:0!important;overflow:visible;
 background:transparent!important;background-image:none!important;box-shadow:none!important;color:transparent!important;
 font-size:0;line-height:0;cursor:pointer;transform:none!important;filter:none!important;
}
#main .lounge .envelope-open-card[data-act=open]:hover,#main .lounge .envelope-open-card[data-act=open]:active{
 background:transparent!important;background-image:none!important;box-shadow:none!important;color:transparent!important;transform:none!important;filter:none!important;opacity:1!important
}
#main .lounge .envelope-open-card[data-act=open]:focus-visible{outline:3px solid #ae8549!important;outline-offset:3px;border-radius:14px!important}
@media(max-width:1199px) and (min-width:761px){
 #main .lounge-center .sealed-letter-box{min-height:600px}
 #main .lounge-center .sealed-letter-box::before{height:62%;background-size:100% auto}
 #main .lounge .envelope-open-card[data-act=open]{inset:49% 5% 3%}
}
@media(max-width:760px){
 #main .lounge-center .sealed-letter-box{min-height:620px;padding:23px 17px 24px}
 #main .lounge-center .sealed-letter-box::before{height:58%;background-size:100% auto;mask-image:radial-gradient(ellipse 90% 80% at 50% 64%,#000 65%,#000d 82%,transparent 100%)}
 #main .lounge-center .sealed-letter-box h2{font-size:clamp(27px,7.8vw,38px);max-width:18ch}
 #main .lounge .envelope-open-card[data-act=open]{inset:51% 2% 2%}
}

/* Real alpha cutout: the invitation paper is visible around the envelope. */
#main .lounge-center .sealed-letter-box::before{background-image:url('/art/envelope-cutout.webp');background-size:88% auto;mask:none!important;mask-image:none!important;filter:drop-shadow(0 8px 9px #60402024)}
@media(max-width:1199px) and (min-width:761px){#main .lounge-center .sealed-letter-box::before{background-size:94% auto}}
@media(max-width:760px){#main .lounge-center .sealed-letter-box::before{background-size:96% auto}}

/* Invitations and personal stationery */
header nav>a,header nav .nav-account{display:inline-flex;align-items:center;gap:.45em;padding:8px 13px;margin:0;min-height:38px;border:1px solid #bca46a;border-radius:22px;text-decoration:none;font:650 14px/1.2 system-ui}
body header nav>a,body:has(.lounge) header nav>a{background:#234936;color:#fff4d8}
body header nav .nav-account{background:#fff1d7;color:#523623}
header nav>a::before{content:'✧';color:#ebc978;font-size:18px}
header nav .nav-account::before{content:'❄';color:#963447}
body:has(.holiday-book){background:#182e25 url('/art/holiday-room.webp') center/cover fixed}
body:has(.holiday-book) header{width:100%;padding-inline:4%;background:#163b2f;color:#fff1d8}
main:has(.holiday-book){width:min(94%,1080px);margin:clamp(20px,5vh,54px) auto}
.holiday-book{border:1px solid #c9aa74;border-radius:19px;overflow:hidden;background:#fcf1db;box-shadow:0 14px 40px #110c0760}
.book-cover{padding:clamp(24px,4vw,52px);background:linear-gradient(90deg,#153d30 24%,#153d30ec 42%,#153d3022 80%),url('/art/lounge.webp') right center/cover;color:#fff2d7}
.book-cover>a:first-child{color:#f2dfb8}.book-cover small,.profile-cover small{display:block;margin-top:26px;color:#f4d294;font:700 11px/1.4 system-ui;letter-spacing:.15em}
.book-cover h1{font:bold clamp(36px,5vw,62px)/1.1 Georgia;margin:7px 0}.book-cover p{max-width:33ch}
.book-create{display:inline-block;margin-top:9px;background:#901e34;color:white;border:1px solid #dbb76b;border-radius:10px;padding:11px 18px;text-decoration:none;font-weight:700}
.book-pages{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(265px,100%),1fr));gap:16px;padding:clamp(17px,3vw,34px)}
.exchange-ticket,.book-empty{display:block;border:1px solid #d8bf8d;border-left:5px solid #984052;border-radius:12px;padding:21px;background:#fffaf0;color:#24432e;text-decoration:none;overflow-wrap:anywhere}
.exchange-ticket h3{margin:10px 0;font-size:26px}.exchange-ticket span{font-size:14px}.exchange-ticket b{display:block;margin-top:18px;color:#903046}
#accountDialog:has(.profile-cover){padding:0 22px 20px;width:min(94vw,440px);overflow-x:hidden}
.profile-cover{margin:0 -22px;padding:20px 22px 17px;background:linear-gradient(90deg,#193f31 33%,#193f3188),url('/art/lounge.webp') right center/cover;color:#fff1da}
.profile-cover small{margin:0 38px 10px 0}.profile-cover h2{margin:0}
#accountDialog:has(.profile-cover) #closeAccount{position:absolute;top:10px;right:10px;z-index:1}
#accountPanel>p{overflow-wrap:anywhere}#accountPanel:has(.profile-cover)>p{margin-top:17px}
.guest-list li{flex-wrap:wrap}.guest-list .receipt-mark{color:#714323;background:#f4e1bb;border-radius:12px;padding:3px 8px;font:600 12px system-ui}
@media(max-width:700px){header{height:auto;min-height:52px;flex-wrap:wrap;gap:6px;padding-block:6px}header nav>a,header nav .nav-account{padding:7px 9px;font-size:12px}.book-cover{background-image:linear-gradient(90deg,#153d30fa,#153d3088),url('/art/lounge.webp')}}

/* Keep the page background behind the final content margin as well. */
body {
  display: flow-root;
  min-height: 100svh;
}
html:has(.game-sidebar),
html:has(.holiday-book) {
  background-color: #171b14;
}
#error:empty {
  display: none;
}

/* Explicit participant details in the organizer panel. */
.organizer-panel .organizer-intro{color:#53604d;font-size:14px;margin:0 0 20px}
.organizer-person{padding:18px 0;border-top:1px solid #d5bf96;overflow-wrap:anywhere}
.organizer-person-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:13px}
.organizer-person-heading h3{margin:0;font-size:19px;color:#203c30}
.organizer-envelope-status{font-size:12px;line-height:1.5;padding:4px 9px;border-radius:8px;background:#ede6d6;color:#53604d}
.organizer-person dl{margin:0}
.organizer-person dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;padding:5px 0}
.organizer-person dt{font-size:14px;color:#53604d;line-height:1.5}
.organizer-person dd{margin:0;font-size:14px;line-height:1.5;color:#203c30;white-space:pre-wrap}
.organizer-person .organizer-progress{margin-top:12px;padding-top:9px;border-top:1px dashed #d5bf96}
.organizer-person .status-confirmed{font-weight:650;color:#25603b}
@media(max-width:480px){.organizer-person dl>div{grid-template-columns:1fr;gap:2px;padding:7px 0}.organizer-person-heading{align-items:flex-start;flex-direction:column}}
.organizer-panel>summary{cursor:pointer;font-weight:650;font-size:16px;line-height:1.5;color:#244632}
.organizer-panel .organizer-content{padding-top:18px}
.profile-email{padding-top:18px}
.profile-email small{color:#53604d;font-size:13px}
.profile-email p{margin:3px 0 19px;overflow-wrap:anywhere}
#accountPanel .profile-note{font-size:13px;line-height:1.55;color:#53604d;margin:9px 0}
.profile-actions{display:flex;align-items:center;justify-content:flex-start;gap:14px;margin-top:20px}
.profile-actions button{margin:0;min-height:44px}
#accountPanel #exitProfile{background:transparent;color:#7e3040;padding:9px 10px;font-size:14px;text-decoration:underline;text-underline-offset:4px;box-shadow:none}
.participant-list{max-height:480px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:7px}
.participant-list .organizer-person{padding:0;border-top:1px solid #d5bf96}
.participant-list .organizer-person-heading{display:list-item;position:relative;margin:0;padding:14px 6px;cursor:pointer;line-height:1.6}
.participant-name{font-weight:650;font-size:16px;overflow-wrap:anywhere}
.participant-list .organizer-envelope-status{display:inline-block;margin:4px 0 4px 9px;vertical-align:middle}
.participant-card{padding:0 6px 18px}
.participant-name mark{background:#f0d493;color:#352810;border-radius:3px;padding:0 1px}
.organizer-panel .participant-search-count{font-size:13px;color:#53604d;margin:8px 0 12px}
.participant-list details[open]>summary{color:#8b263c}
@media(max-width:480px){.participant-list{max-height:60svh}.participant-list .organizer-envelope-status{display:block;width:fit-content;margin-left:0}}

.profile-admin-link {
  display:block; margin-top:20px; padding:12px 14px; border:1px solid #ccb482;
  border-radius:10px; background:#f5e6ca; color:#234535; font-weight:700; text-decoration:none;
}
.profile-admin-link:hover { background:#ead8b5; }

html:has(.admin-console) { background:#14281f; }
body:has(.admin-console) {
  background:linear-gradient(#12261edb,#12261ef2),url('/art/holiday-room.webp') center/cover fixed;
}
body:has(.admin-console)>header { color:#fff3db; border-color:#dac18460; }
main:has(.admin-console) { width:min(94%,1120px); padding:clamp(16px,4vw,42px) 0; }
.admin-console { display:grid; gap:16px; }
.admin-cover {
  display:grid; align-content:center; min-height:clamp(215px,32vw,310px);
  padding:clamp(20px,5vw,60px); border:1px solid #cda66d; border-radius:20px;
  background:linear-gradient(90deg,#132c23 8%,#132c23e8 44%,#132c2350),
    url('/art/lounge.webp') center 42%/cover;
  color:#fff5e1; box-shadow:0 12px 36px #0c1a15b3;
}
.admin-cover .tag { color:#f7d89d; }
.admin-cover h1 { color:inherit; font-size:clamp(2rem,5vw,4rem); margin:.16em 0 .2em; }
.admin-cover p { margin:0; max-width:38ch; color:#fff0d2; }
.admin-section {
  min-width:0; padding:clamp(16px,3vw,28px); border:1px solid #d4ba89; border-radius:16px;
  background:#fff4df; overflow-wrap:anywhere;
}
.admin-section h2 { font-size:clamp(1.45rem,3vw,2.15rem); margin:0 0 12px; }
.admin-section summary { cursor:pointer; font-weight:700; }
.admin-section p { margin:8px 0; }
.admin-traffic table { width:min(100%,460px); border-collapse:collapse; text-align:left; }
.admin-traffic :is(th,td) { padding:7px 4px; border-bottom:1px solid #dfc99f; }
.admin-traffic td { font-variant-numeric:tabular-nums; }
.admin-gate { width:min(100%,550px); }
.admin-search { display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end; }
.admin-search label { flex:1 1 240px; min-width:0; }
.admin-search :is(input,select) { display:block; margin-top:4px; }
.admin-search button { margin:0 0 5px; }
.admin-rooms { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:12px; }
.admin-room-link {
  display:grid; align-content:start; gap:6px; min-width:0; margin:0; padding:16px;
  text-align:left; color:#1c3a2d; background:#fbebcf; border:1px solid #d8bd8c; overflow-wrap:anywhere;
}
.admin-room-link:hover { background:#f4e0ba; border-color:#b58d53; }
.admin-room-link strong { font-size:1.15rem; }
.admin-room-link b { margin-top:4px; color:#8a233a; }
.admin-stage {
  justify-self:start; background:#e6ebd7; color:#294737; border-radius:999px; padding:3px 9px; font-size:.82rem;
}
.admin-pagination,.admin-room-heading { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.admin-pagination { justify-content:center; margin-top:10px; }
.admin-room-heading { justify-content:space-between; }
.admin-room-heading h2 { margin:0; }
.admin-tools { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.admin-roster { margin-top:12px; border-block:1px solid #dfc99f; padding:10px 0; }
.admin-roster ul { padding-left:20px; max-height:22rem; overflow-y:auto; }
.admin-roster li { margin:9px 0; }
.admin-roster small { display:block; }
#adminRoom:empty,#adminError:empty,#adminTransferStatus:empty { display:none; }
#adminError { margin:0; padding:12px 16px; background:#ffeadf; color:#7d2735; border-radius:10px; }
#adminTransferStatus { color:#285338; font-weight:700; }
@media(max-width:620px) {
  .admin-tools { grid-template-columns:1fr; }
  .admin-cover { background-image:linear-gradient(90deg,#132c23f5,#132c23ad),url('/art/lounge.webp'); }
}

/* Version 27: private organizer statuses and a dynamically shown receipt. */
.receipt-strip[hidden]{display:none!important}
.organizer-person [data-organizer-status]{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.organizer-person [data-organizer-status] .organizer-envelope-status{margin:0}
