:root{--ink:#101412;--paper:#fffaf1;--panel:#ffffffd6;--line:#10141221;--muted:#626b66;--mint:#1f9a79;--coral:#f06449;--sun:#f8c441;--blue:#2f7fbd}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:linear-gradient(90deg,#1f9a7924,#0000 34%),linear-gradient(270deg,#f0644926,#0000 32%),repeating-linear-gradient(0deg,#10141209 0 1px,#0000 1px 34px),#fff6e7;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.access-wall{color:#fffaf1;background:radial-gradient(circle at 50% 18%,#f8c4414d,#0000 22rem),linear-gradient(135deg,#111513,#1e705b 48%,#f06449 120%);place-items:center;min-height:100svh;padding:1rem;display:grid;position:relative;overflow:hidden}.meme-wallpaper{opacity:.18;pointer-events:none;grid-template-columns:repeat(4,minmax(12rem,1fr));gap:1rem;display:grid;position:absolute;inset:-6rem;rotate:-10deg}.meme-wallpaper span{color:#fffaf1;text-align:center;text-transform:uppercase;border:2px solid #fffaf157;border-radius:8px;place-items:center;min-height:5.2rem;font-size:clamp(1.1rem,3vw,2.2rem);font-weight:950;line-height:.95;display:grid}.access-card{z-index:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#101412c7;border:1px solid #fffaf133;border-radius:8px;width:min(100%,31rem);padding:clamp(1rem,4vw,1.55rem);position:relative;box-shadow:0 28px 80px #10141266}.access-kicker{color:var(--sun);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .55rem;font-size:.72rem;font-weight:950}.access-card h1{color:#fffaf1;margin-bottom:1rem;font-size:clamp(2.4rem,10vw,4.6rem)}.access-form{grid-template-columns:minmax(0,1fr) auto;gap:.55rem;display:grid}.access-form input,.access-form button{border-radius:8px;min-height:3.25rem;font-weight:900}.access-form input{width:100%;color:var(--ink);background:#ffffffeb;border:1px solid #fffaf138;outline:none;padding:0 .85rem}.access-form input:focus{border-color:var(--sun);box-shadow:0 0 0 3px #f8c4413d}.access-form button{background:var(--sun);min-width:6.8rem;color:var(--ink);cursor:pointer;border:0}.access-message{color:#fffaf1b8;min-height:1.2rem;margin-top:.75rem;font-size:.84rem;font-weight:800;line-height:1.35}.access-message.is-error{color:#ffb6a7}.page-shell{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.55rem,1.4vw,.85rem);max-width:1240px;min-height:100svh;margin:0 auto;padding:clamp(.55rem,1.3vw,.95rem);display:grid}.top-bar{grid-template-columns:minmax(0,1fr) minmax(28rem,37rem);align-items:stretch;gap:.75rem;display:grid}.brand-block,.control-deck,.bed-card{border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 42px #1014121f}.brand-block{background:linear-gradient(135deg, #101412f5, #1b5c4bf0), var(--ink);color:#fffaf1;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:7.2rem;padding:clamp(.85rem,2vw,1.25rem);display:grid;overflow:hidden}.eyebrow{color:var(--sun);letter-spacing:.13em;text-transform:uppercase;grid-column:1;margin:0 0 .3rem;font-size:.72rem;font-weight:950}h1,p{margin:0}h1{letter-spacing:0;grid-column:1;font-size:clamp(2.1rem,5.2vw,4.3rem);line-height:.88}.room-map{grid-area:1/2/span 2;grid-template-columns:repeat(3,3.15rem);justify-content:end;gap:.42rem;display:grid}.room-map span{aspect-ratio:1;background:#ffffff1a;border:1px solid #ffffff29;border-radius:8px;place-items:center;width:3.15rem;font-size:1.35rem;display:grid}.control-deck{background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;padding:.55rem;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:8px;align-content:center;min-height:4.9rem;padding:.62rem;display:grid}.stat strong{overflow-wrap:anywhere;font-size:clamp(1.45rem,2.5vw,2rem);line-height:.95;display:block}.stat span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:.24rem;font-size:.62rem;font-weight:950}.sofa-stat{background:var(--ink);color:#fff;grid-column:span 2}.sofa-stat span{color:#ffffffb8}.primary-button,.icon-button{cursor:pointer;border-radius:8px;min-height:3.15rem;font-weight:950}.primary-button{background:linear-gradient(135deg, var(--coral), #f28b50);color:#fff;border:0;grid-column:span 3;box-shadow:inset 0 -4px #1014122e}.icon-button{border:1px solid var(--line);color:var(--ink);background:#fff;grid-column:span 2}.primary-button:disabled,.icon-button:disabled{cursor:wait;opacity:.72}.beds-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.5rem,1.1vw,.72rem);min-height:0;display:grid}.bed-card{background:linear-gradient(180deg, #ffffffdb, #fffaf1eb), var(--paper);grid-template-rows:auto minmax(0,1fr);min-height:clamp(20rem,100svh - 12.5rem,32rem);display:grid;overflow:hidden}.bed-header{background:var(--card-tone);min-height:2.8rem;color:var(--tone-ink,#fff);justify-content:space-between;align-items:center;gap:.5rem;padding:.58rem .7rem;display:flex}.bed-header span{font-size:.86rem;font-weight:950;line-height:1.05}.bed-header small{letter-spacing:.08em;text-transform:uppercase;background:#ffffff40;border-radius:999px;flex:none;padding:.24rem .43rem;font-size:.58rem;font-weight:950}.tone-mint{--card-tone:var(--mint)}.tone-coral{--card-tone:var(--coral)}.tone-sun{--card-tone:var(--sun);--tone-ink:var(--ink)}.tone-blue{--card-tone:var(--blue)}.tone-ink{--card-tone:var(--ink)}.people-row{grid-template-rows:repeat(2,minmax(0,1fr));gap:.52rem;min-height:0;padding:.55rem;display:grid}.people-row.count-0{grid-template-rows:1fr}.people-row.count-1{grid-template-rows:minmax(0,.78fr);align-content:center}.empty-slot{background:linear-gradient(135deg,#ffffff9e,#fffaf1c2),repeating-linear-gradient(-45deg,#10141209 0 8px,#0000 8px 16px);border:2px dashed #1014122e;border-radius:8px;place-items:center;min-height:0;display:grid}.empty-slot span{min-height:2.3rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;text-align:center;background:#ffffffc7;border-radius:999px;place-items:center;padding:.45rem .7rem;font-size:.78rem;font-weight:950;display:inline-grid}.person{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden;box-shadow:0 8px 18px #10141214}.person-photo{background:#eee8dc;min-height:4rem;position:relative}.person-photo img,.mini-person img{object-fit:cover}.person p{min-height:2.35rem;color:var(--ink);text-align:center;text-transform:uppercase;overflow-wrap:anywhere;place-items:center;padding:.32rem;font-size:clamp(.92rem,1.45vw,1.25rem);font-weight:950;line-height:1;display:grid}.has-result .tone-ink{outline:3px solid var(--sun);outline-offset:-4px}.beds-grid.is-drawing .bed-card{animation:.24s infinite alternate card-shuffle}.beds-grid.is-drawing .bed-card:nth-child(2n){animation-delay:70ms}.roster-strip{justify-content:center;gap:.34rem;min-height:2.8rem;display:flex;overflow:hidden}.mini-person{aspect-ratio:1;border:2px solid #fff;border-radius:8px;flex:0 0 2.75rem;width:2.75rem;position:relative;overflow:hidden;box-shadow:0 7px 14px #10141229}@keyframes card-shuffle{0%{transform:translateY(-2px)rotate(-.7deg)}to{transform:translateY(2px)rotate(.7deg)}}@media (max-width:980px){.page-shell{min-height:auto}.top-bar{grid-template-columns:1fr}.brand-block{min-height:6.2rem}.beds-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bed-card{min-height:16.4rem}.bed-card:last-child{grid-column:1/-1;min-height:10.4rem}.bed-card:last-child .people-row{justify-self:center;width:100%;max-width:18rem}}@media (max-width:620px){.meme-wallpaper{grid-template-columns:repeat(2,minmax(10rem,1fr));inset:-4rem}.access-form{grid-template-columns:1fr}.access-form button{width:100%}.page-shell{padding:.45rem}.brand-block{grid-template-columns:minmax(0,1fr);min-height:5.25rem;padding:.75rem}.room-map{display:none}.eyebrow{margin-bottom:.25rem;font-size:.63rem}h1{font-size:clamp(2rem,12vw,3rem)}.control-deck{grid-template-columns:repeat(3,minmax(0,1fr));gap:.38rem;padding:.45rem}.stat{min-height:3.85rem;padding:.43rem}.stat strong{font-size:1.25rem}.stat span{font-size:.56rem}.sofa-stat{grid-column:span 1}.primary-button{grid-column:span 2}.icon-button{grid-column:span 1}.primary-button,.icon-button{min-height:2.8rem}.beds-grid{gap:.42rem}.bed-card{min-height:13.2rem}.bed-header{min-height:2.35rem;padding:.43rem}.bed-header span{font-size:.68rem}.bed-header small{font-size:.52rem}.people-row{gap:.38rem;padding:.38rem}.person p{min-height:1.75rem;font-size:.73rem}.bed-card:last-child{min-height:8.8rem}.roster-strip{min-height:2.2rem}.mini-person{flex-basis:2.08rem;width:2.08rem}}
