*{box-sizing:border-box}body{background-color:var(--felt-deep);color:var(--chalk);font-family:var(--font-ui);font-size:var(--size-body);line-height:var(--leading);margin:0}button,input{font:inherit;color:inherit;border-radius:var(--radius-control)}button{cursor:pointer}button:focus-visible{outline:2px solid var(--brass);outline-offset:3px}.table{background:var(--surface-felt);background-color:var(--felt);flex-direction:column;width:100%;max-width:430px;min-height:100svh;margin:0 auto;display:flex;position:relative;box-shadow:inset 0 0 90px 22px #00000059}.head{padding:calc(env(safe-area-inset-top,0px) + 12px) 14px 12px 20px;justify-content:space-between;align-items:center;gap:12px;display:flex}.head-stack{flex-direction:column;gap:3px;display:flex}.eyebrow{color:var(--brass);letter-spacing:.2em;text-transform:uppercase;font-size:10.5px;font-weight:600}.meta{color:var(--chalk-quiet);font-size:12.5px}html{scrollbar-gutter:stable;overflow-x:hidden}a{color:var(--brass)}button,a{transition:background-color .2s,color .2s,box-shadow .2s,opacity .2s}.switch{border-radius:var(--radius-control);width:196px;box-shadow:inset 0 0 0 1px var(--chalk-line);background:#00000052;flex-shrink:0;grid-template-columns:1fr 1fr;padding:4px;display:grid}.switch button{border-radius:var(--radius-control);min-height:36px;color:var(--chalk-quiet);letter-spacing:.12em;text-transform:uppercase;background:0 0;border:0;font-size:10.5px;font-weight:600}.switch button[aria-pressed=true]{color:var(--ink);background-color:var(--stock);background-image:var(--stock-light);box-shadow:0 2px 6px #00000080}.panel{border-radius:var(--radius-panel)}.notice{text-align:center;box-shadow:inset 0 0 0 1px var(--chalk-line);overflow-wrap:anywhere;background:#0000002e;flex-direction:column;align-items:center;gap:16px;margin:auto 16px;padding:32px 20px;display:flex}.notice ul{margin:0;padding:0;line-height:1.8;list-style:none}.notice h2{font-family:var(--font-ui);margin:8px 0 0;font-size:22px;font-weight:400}.primary{border-radius:var(--radius-control);min-height:48px;color:var(--ink);background-color:var(--stock);background-image:var(--stock-light);border:0;padding:0 28px;font-weight:600}.quiet{border-radius:var(--radius-control);min-height:36px;box-shadow:inset 0 0 0 1px var(--chalk-line);color:var(--chalk);background:#00000052;border:0;padding:0 16px;font-size:13px}.quiet:hover{box-shadow:inset 0 0 0 1px var(--brass)}.head a.eyebrow{text-decoration:none}.sign-in{justify-content:center;max-width:100%;margin:auto 0;padding:0 16px 24px;display:flex}.empty-table{text-align:center;box-shadow:inset 0 0 0 1px var(--chalk-line);background:#0000002e;margin:auto 24px;padding:40px 24px}h1{font-family:var(--font-ui);margin:16px 0;font-size:42px;font-weight:400}p{color:var(--chalk-quiet);font-size:14px;line-height:1.6}.rail{padding:26px 20px calc(24px + env(safe-area-inset-bottom,0px));border-radius:var(--radius-panel);background:var(--surface-leather);text-align:center;margin-top:auto;box-shadow:0 -6px 18px #00000059}@media (width>=700px){.table{min-height:100svh}.head{padding-top:24px}}:root{--leather-grain:.42;--size-display:32px;--track-display:-.01em;--deck-w:124px;--deck-cards:14;--deck-step-x:-.3px;--deck-step-y:-.55px;--t-join:.9s;--t-deck:.76s;--t-riffle-split:.42s;--t-riffle-drop:.23s;--t-riffle-gap:46ms;--t-riffle-rest:1.5s;--riffle-reach:.34;--riffle-turn:11deg;--chalk-off:#f3eee199;--list-w:560px;--dot:9px;--join-w:76px;--stay-w:104px;--t-breathe:1.8s}@media (width>=900px){:root{--size-display:44px;--deck-w:176px}}*,:before,:after{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0}body:has(.home,.room){background-color:var(--leather)}.home :is(h1,h2,p),.room :is(h1,h2,p){font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit;margin:0}.home,.room{isolation:isolate;color:var(--chalk);font-family:var(--font-ui);font-size:var(--size-body);font-weight:var(--w-regular);line-height:var(--leading);-webkit-font-smoothing:antialiased}.home ::selection{background-color:var(--brass);color:var(--on-brass)}.room ::selection{background-color:var(--brass);color:var(--on-brass)}.sprite{width:0;height:0;position:absolute;overflow:hidden}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.felt{z-index:-1;width:100%;height:100%;display:block;position:fixed;inset:0}.tile{width:var(--tile-w);height:var(--tile-h);border-radius:var(--radius-tile);background-color:var(--stock);box-shadow:var(--shadow-tile);flex:none;place-items:center;display:grid}.suit{aspect-ratio:1;width:64%;fill:var(--suit-black)}.tile[data-band="1"] .suit,.tile[data-band="3"] .suit{fill:var(--suit-red)}.btn{appearance:none;justify-content:center;align-items:center;column-gap:var(--s1);height:var(--tap);padding:0 var(--pad-control);border:var(--line) solid transparent;border-radius:var(--radius-control);color:var(--chalk);font-family:inherit;font-size:var(--size-body);font-weight:var(--w-medium);white-space:nowrap;cursor:pointer;outline:var(--focus-w) solid transparent;outline-offset:var(--focus-gap);-webkit-tap-highlight-color:transparent;transition:background-color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out), outline-color var(--t-fast) var(--ease-out), opacity var(--t-mid) var(--ease-out);background-color:#0000;margin:0;line-height:1;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:var(--focus-w) solid var(--chalk);outline-offset:var(--focus-gap)}.btn:active{background-color:var(--chalk-tint)}.btn--line{border-color:var(--chalk-line)}.ico{width:var(--icon);height:var(--icon);fill:currentColor;flex:none}@media (hover:hover) and (pointer:fine){.btn:hover{background-color:var(--chalk-tint)}.btn--line:hover{border-color:var(--chalk)}}.deck{width:var(--deck-w);aspect-ratio:5/7;transition:opacity var(--t-mid) var(--ease-out);position:relative}.dk{border-radius:var(--radius-back);background-color:var(--stock);background-image:var(--tex-back);box-shadow:var(--shadow-back);will-change:transform;transition:translate var(--t-mid) var(--ease-out);background-size:100% 100%;position:absolute;inset:0}.dk:last-child{box-shadow:var(--shadow-card)}.top{height:calc(var(--tap) + var(--s3) + var(--s4));padding:var(--s3) 0 var(--s4);justify-content:space-between;align-items:center;display:flex}p.mark{padding-left:var(--s3);font-size:var(--size-quiet);font-weight:var(--w-semibold);letter-spacing:var(--track-mark);text-transform:uppercase;color:var(--chalk-quiet)}.top__end{align-items:center;column-gap:var(--s1);display:flex}.admin{color:var(--chalk-quiet)}.signout{width:var(--tap);padding:0}.student{padding:0 var(--gutter) var(--gutter);-webkit-user-select:none;user-select:none;grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;position:fixed;inset:0}.student .hello{justify-items:center;row-gap:var(--s2);padding-top:var(--s5);text-align:center;display:grid}h1.greet{font-size:var(--size-display);font-weight:var(--w-semibold);line-height:var(--leading-title);letter-spacing:var(--track-display);text-wrap:balance;overflow-wrap:anywhere}p.band{align-items:center;column-gap:var(--s3);padding-top:var(--s2);display:flex}.student .spot{align-content:center;justify-items:center;row-gap:var(--s6);min-height:0;padding:var(--s5) 0;display:grid}.student .deck{cursor:pointer;touch-action:manipulation}.student[data-teacher=none] .deck{opacity:var(--off);cursor:default}.go{justify-items:center;row-gap:var(--s3);display:grid}.student .join{padding:0 var(--s5)}p.join__note{font-size:var(--size-body);color:var(--chalk);text-align:center}.rows{align-items:center;gap:var(--s2) var(--s3);flex-direction:column;display:flex}.row{appearance:none;align-items:center;column-gap:var(--s4);height:var(--tap);padding:0 var(--s3) 0 var(--s4);border:var(--line) solid var(--chalk-print);border-radius:var(--radius-control);color:var(--chalk);font-family:inherit;font-size:var(--size-body);text-align:left;transition:background-color var(--t-fast) var(--ease-out), outline-color var(--t-fast) var(--ease-out);background-color:#0000;grid-template-columns:auto auto;margin:0;display:grid}.row:disabled{opacity:var(--off);cursor:default}.row__go{color:var(--chalk-line)}.list{width:100%;max-width:var(--list-w);min-height:100svh;padding:0 var(--gutter) var(--s6);grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid;position:relative}.students{border-collapse:separate;width:100%;border-spacing:0 var(--s1);align-self:start}.students td{padding:var(--s2) 0;border:var(--line) solid transparent;border-inline-width:0;border-bottom-color:var(--chalk-print);vertical-align:middle;transition:background-color var(--t-slow) var(--ease-inout), border-color var(--t-slow) var(--ease-inout)}.students .who{width:100%;max-width:0;padding-left:var(--s3);border-left-width:var(--line)}.students .act{padding-left:var(--s3);padding-right:var(--s2);border-right-width:var(--line)}.who__in{align-items:center;column-gap:var(--s4);min-width:0;display:flex}.who__words{row-gap:var(--s1);min-width:0;display:grid}.who__name{font-weight:var(--w-semibold);line-height:var(--leading-title);overflow-wrap:anywhere;transition:color var(--t-slow) var(--ease-inout)}.who__state{align-items:center;column-gap:var(--s2);font-size:var(--size-quiet);line-height:var(--leading-title);color:var(--chalk-quiet);white-space:nowrap;transition:color var(--t-slow) var(--ease-inout);display:flex}.dot{width:var(--dot);height:var(--dot);border:var(--line) solid var(--chalk-line);transition:background-color var(--t-slow) var(--ease-inout), border-color var(--t-slow) var(--ease-inout);background-color:#0000;border-radius:50%;flex:none}.students .join{width:var(--join-w);padding:0}[data-presence=offline] .who__name,[data-presence=offline] .who__state{color:var(--chalk-off)}[data-presence=online] .dot,[data-presence=in-session] .dot{border-color:var(--keep-mark);background-color:var(--keep-mark)}.students [data-presence=waiting] td{border-color:var(--brass);background-color:var(--felt)}.students [data-presence=waiting] .who{border-radius:var(--radius-control) 0 0 var(--radius-control)}.students [data-presence=waiting] .act{border-radius:0 var(--radius-control) var(--radius-control) 0}[data-presence=waiting] .who__state{color:var(--chalk)}[data-presence=waiting] .dot{border-color:var(--brass);background-color:var(--brass);animation:breathe var(--t-breathe) var(--ease-inout) infinite alternate}.students [data-presence=waiting] .join{border-color:var(--brass);background-color:var(--brass);color:var(--on-brass)}.students [data-presence=waiting] .join:active{background-color:var(--brass-shine)}@media (hover:hover) and (pointer:fine){.students [data-presence=waiting] .join:hover{border-color:var(--brass-lit);background-color:var(--brass-lit)}}@keyframes breathe{0%{opacity:1}to{opacity:var(--off)}}.none{align-content:center;justify-items:center;row-gap:var(--s6);padding-bottom:calc(var(--tap) + var(--s3) + var(--s4));text-align:center;display:grid}.none .deck{opacity:var(--off)}.room{-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.bar{left:calc(var(--bar-x) * 1px);top:calc(var(--bar-y) * 1px);width:calc(var(--bar-w) * 1px);height:var(--tap);align-items:center;column-gap:var(--s2);z-index:3;transition:opacity var(--t-mid) var(--ease-out), visibility var(--t-mid);grid-template-columns:1fr auto 1fr;display:grid;position:absolute}.bar__side{align-items:center;min-width:0;display:flex}.suitview{width:var(--tap);height:var(--tap);place-items:center;display:grid}.room .switch{column-gap:var(--s1);width:auto;box-shadow:none;background:0 0;border-radius:0;padding:0;display:flex}.room .switch .btn{border:var(--line) solid transparent;border-radius:var(--radius-control);min-height:0;box-shadow:none;color:var(--chalk-quiet);font-size:var(--size-body);letter-spacing:normal;text-transform:none;background-color:#0000;position:relative}.room .switch .btn:after{content:"";left:var(--pad-control);right:var(--pad-control);bottom:var(--tab-rule-y);height:var(--line);background-color:var(--brass);opacity:0;transition:opacity var(--t-mid) var(--ease-out);position:absolute}.room .switch .btn[aria-pressed=true]{color:var(--chalk);box-shadow:none;background-color:#0000;background-image:none}.room .switch .btn[aria-pressed=true]:after{opacity:1}.room .switch .btn:active{background-color:var(--chalk-tint)}@media (hover:hover) and (pointer:fine){.room .switch .btn:hover{background-color:var(--chalk-tint)}}.room[data-phase=closed] .bar{opacity:0;visibility:hidden}.spot{transition:opacity var(--t-mid) var(--ease-out), visibility var(--t-mid)}.room .spot{inset:calc(var(--bar-y) * 1px + var(--tap)) var(--gutter) var(--gutter);place-items:center;row-gap:var(--s5);padding:var(--s5) 0;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;position:absolute}h1.wait__title{font-size:var(--size-title);font-weight:var(--w-semibold);line-height:var(--leading-title);letter-spacing:var(--track-title);text-align:center;text-wrap:balance;overflow-wrap:anywhere}.joined{z-index:4;padding:0 var(--gutter);pointer-events:none;color:var(--chalk);font-size:var(--size-title);font-weight:var(--w-semibold);line-height:var(--leading-title);letter-spacing:var(--track-title);text-align:center;text-wrap:balance;overflow-wrap:anywhere;animation:fade-out calc(var(--t-mid) + var(--t-slow)) var(--ease-inout) both;place-items:center;margin:0;display:grid;position:fixed;inset:0}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.stay{justify-self:stretch;justify-items:center;display:grid}.leave{width:var(--stay-w);padding:0}.room[data-phase=closed] .deck{opacity:var(--off)}@media (width>=900px){.student{padding:0 var(--s6) var(--s6)}.student .hello{padding-top:var(--s6)}.rows{flex-direction:row;justify-content:center}.list{padding:0 var(--s6) var(--s6)}.top{height:calc(var(--tap) + var(--s5) + var(--s5));padding:var(--s5) 0}.room .spot{inset:calc(var(--bar-y) * 1px + var(--tap)) var(--s6) var(--s6)}}@media (prefers-reduced-motion:reduce){[data-presence=waiting] .dot{animation-name:none}.bar,.spot,.deck{transition-duration:var(--t-fast)}}
