:root{color-scheme:light;--ink:#123c31;--paper:#f7f5ef;--paper-deep:#e8e4d8;--cream:#eee7b8;--cream-edge:#b6a86c;--gold:#b8893b;--muted:#526b63;--error:#9c2f25}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 25% 10%,#fff 0,var(--paper) 55%,var(--paper-deep) 100%);color:var(--ink);font-family:ui-serif,Georgia,serif}main{width:min(44rem,calc(100% - 2rem));padding:4rem 2rem;text-align:center}.mark{display:block;width:5rem;height:5rem;object-fit:contain;margin:0 auto 1.5rem}.eyebrow{font:650 .75rem/1.2 ui-sans-serif,system-ui,sans-serif;letter-spacing:.12em;color:#527067}h1{font-size:clamp(2.4rem,7vw,5rem);line-height:.95;letter-spacing:-.045em;margin:1rem 0 1.5rem}.status{min-height:1.5rem;font:400 1rem/1.5 ui-sans-serif,system-ui,sans-serif;color:#45665c}.status.label-maker{position:relative;width:max-content;max-width:100%;min-height:0;margin:1.1rem auto .2rem;padding:.55rem 1.05rem .5rem;clip-path:polygon(.6rem 4%,calc(100% - .35rem) 0,100% 88%,calc(100% - .7rem) 100%,0 92%,.25rem 12%);transform:rotate(-.65deg);background:#16382f;color:#f4efd4;box-shadow:0 2px 0 #081d18,0 6px 12px rgba(18,60,49,.18);font:800 .82rem/1.15 'Arial Narrow','Helvetica Neue Condensed',Impact,sans-serif;letter-spacing:.105em;text-transform:uppercase;text-shadow:0 1px 0 rgba(255,255,255,.38),0 -1px 0 #061712}.status.label-maker:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.08),transparent 12%,rgba(255,255,255,.03) 74%,transparent);pointer-events:none}.actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.button{display:inline-flex;align-items:center;justify-content:center;margin-top:1rem;padding:.9rem 1.3rem;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;text-decoration:none;font:650 .95rem/1 ui-sans-serif,system-ui,sans-serif;cursor:pointer}.button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.button:disabled{cursor:wait;opacity:.65}.button.secondary{background:transparent;color:var(--ink)}.onboarding{margin:2rem auto 0;padding:2.25rem;text-align:left;background:#fffdf8;border:1px solid #c9c1ae;border-radius:1rem;box-shadow:0 18px 45px rgba(18,60,49,.1)}.provider-line{margin:0 0 1rem;font:500 .82rem/1.4 ui-sans-serif,system-ui,sans-serif;color:var(--muted)}.provider-line strong{color:var(--ink)}.onboarding h2{margin:0;font-size:clamp(1.75rem,5vw,2.5rem);letter-spacing:-.025em}.onboarding-copy{max-width:36rem;margin:.65rem 0 1.5rem;color:var(--muted);font:400 .93rem/1.55 ui-sans-serif,system-ui,sans-serif}.onboarding form{display:grid;gap:.55rem}.onboarding label{margin-top:.65rem;font:650 .8rem/1.2 ui-sans-serif,system-ui,sans-serif}.onboarding label span{float:right;color:var(--muted);font-weight:500}.onboarding input,.onboarding select{width:100%;border:1px solid #b8c2be;border-radius:.55rem;background:#fff;padding:.72rem .8rem;color:var(--ink);font:500 1rem/1.2 ui-sans-serif,system-ui,sans-serif}.onboarding input[readonly]{background:#edf0ec;border-color:#d1d7d2;color:#4f635c;cursor:default}.onboarding input:disabled,.onboarding select:disabled{background:#edf0ec;color:var(--muted);cursor:not-allowed}.locked-fields{display:grid;gap:.45rem;padding:1rem;border:1px solid #d9ded9;border-radius:.75rem;background:#f4f5f1}.username-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem}.discriminator{color:var(--gold);font:750 1.05rem/1.2 ui-sans-serif,system-ui,sans-serif}.birth-fieldset{min-width:0;margin:.65rem 0 0;padding:0;border:0}.birth-fieldset legend{padding:0;font:650 .8rem/1.2 ui-sans-serif,system-ui,sans-serif}.birth-selects{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:.65rem}.birth-selects label{display:grid;gap:.35rem;margin-top:.45rem;color:var(--muted);font-size:.72rem}.field-help,.form-error{margin:.15rem 0 .3rem;font:400 .76rem/1.45 ui-sans-serif,system-ui,sans-serif}.field-help{color:var(--muted)}.form-error{color:var(--error)}.onboarding .button{justify-self:start}.credential-preview{display:none}.library-card .credential-preview{position:relative;isolation:isolate;display:flex;flex-direction:column;width:min(100%,35rem);aspect-ratio:85.6/53.98;margin:0 auto 2rem;padding:clamp(1rem,4vw,1.65rem);overflow:hidden;border:1px solid var(--cream-edge);border-radius:1.45rem;background:linear-gradient(145deg,rgba(255,255,255,.55),transparent 32%),linear-gradient(160deg,#f6f0c9 0%,var(--cream) 62%,#ded39a 100%);box-shadow:0 2px 0 #9c8d55,0 18px 38px rgba(34,38,27,.24);color:#17261f}.library-card .credential-preview:after{content:'';position:absolute;inset:-35% -10% auto;height:65%;z-index:-1;transform:rotate(-7deg);background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0));pointer-events:none}.credential-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.credential-brand{display:flex;align-items:center;gap:.7rem}.credential-brand img{width:clamp(2rem,8vw,3.25rem);height:clamp(2rem,8vw,3.25rem);object-fit:contain}.credential-brand span{display:grid}.credential-brand strong{font:800 clamp(1.25rem,5vw,2rem)/.95 ui-sans-serif,system-ui,sans-serif;letter-spacing:-.045em}.credential-brand small{margin-top:.3rem;font:700 clamp(.52rem,2vw,.68rem)/1 ui-sans-serif,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}.credential-member{text-align:right;display:grid;gap:.22rem}.credential-member span,.barcode-caption span,.signature-line span{font:750 clamp(.48rem,1.8vw,.62rem)/1 ui-sans-serif,system-ui,sans-serif;letter-spacing:.11em;text-transform:uppercase}.credential-member strong{font:700 clamp(.54rem,1.9vw,.68rem)/1 ui-monospace,SFMono-Regular,monospace}.member-barcode{height:clamp(3.1rem,12vw,4.8rem);margin:auto 0 .2rem;padding:.35rem .5rem;background:#fff;border:1px solid rgba(23,38,31,.2);box-shadow:inset 0 0 0 3px #f0f0e9}.member-barcode svg{display:block;width:100%;height:100%}.barcode-caption{display:flex;justify-content:space-between;gap:.6rem;padding:0 .1rem}.barcode-caption strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 clamp(.5rem,1.8vw,.65rem)/1 ui-monospace,SFMono-Regular,monospace}.signature-line{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:.65rem;margin-top:clamp(.5rem,2vw,.85rem)}.signature-line strong{overflow:hidden;padding:0 .15rem .12rem;border-bottom:2px solid #17261f;text-overflow:ellipsis;white-space:nowrap;font:600 clamp(.9rem,4.5vw,1.5rem)/1.05 'Bradley Hand','Segoe Print','Comic Sans MS',cursive}.enrollment-form{width:min(100%,36rem);margin:0 auto}.legal{max-width:32rem;margin:2.5rem auto 0;font:400 .75rem/1.5 ui-sans-serif,system-ui,sans-serif;color:#667b74}.legal a{color:inherit}@media(max-width:32rem){main{padding:2rem .25rem}.onboarding{padding:1.15rem}.library-card .credential-preview{border-radius:1rem}.onboarding label span{display:block;float:none;margin-top:.2rem}.locked-fields{padding:.8rem}.username-field{gap:.4rem}.birth-selects{grid-template-columns:1fr}}.card-review{width:min(100%,35rem);margin:0 auto;text-align:center}.card-review h2{font-size:clamp(1.75rem,5vw,2.35rem)}.review-copy{margin:.75rem 0 .25rem;color:var(--muted);font:500 1rem/1.5 ui-sans-serif,system-ui,sans-serif}.review-copy strong{color:var(--ink)}.review-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}.onboarding.reviewing{padding-top:2.5rem}.onboarding.reviewing .credential-preview{margin-bottom:1.75rem}@media(max-width:32rem){.onboarding.reviewing{padding-top:1.4rem}}.wizard-progress{list-style:none;margin:0 0 2rem;padding:0;display:grid;grid-template-columns:repeat(3,1fr);color:#74827d;font:650 .72rem/1.25 ui-sans-serif,system-ui,sans-serif}.wizard-progress li{position:relative;display:grid;justify-items:center;gap:.5rem}.wizard-progress li:not(:last-child):after{content:'';position:absolute;top:.52rem;left:calc(50% + .75rem);width:calc(100% - 1.5rem);border-top:1px solid #c7cec9}.wizard-progress li span{position:relative;z-index:1;display:grid;place-items:center;width:1.1rem;height:1.1rem;border:1px solid #a6b1ab;border-radius:50%;background:#fffdf8;color:transparent;font-size:0}.wizard-progress li.is-active{color:var(--ink)}.wizard-progress li.is-active span{border-color:var(--gold);background:var(--gold);box-shadow:0 0 0 3px rgba(184,137,59,.18)}.wizard-progress li.is-complete{color:var(--ink)}.wizard-progress li.is-complete span{border-color:var(--ink);background:var(--ink)}.registration-welcome{text-align:center;padding:clamp(1rem,4vw,2.5rem) 0}.registration-welcome .provider-line{margin-bottom:1.25rem}.registration-welcome h2{font-size:clamp(2.2rem,7vw,3.5rem)}.welcome-copy{margin:.8rem 0 .45rem;color:var(--ink);font:650 clamp(1.05rem,3vw,1.25rem)/1.4 ui-sans-serif,system-ui,sans-serif}.welcome-detail{max-width:30rem;margin:0 auto;color:var(--muted);font:400 .9rem/1.55 ui-sans-serif,system-ui,sans-serif}.registration-welcome .button{margin-top:1.6rem}.availability-status{min-height:1.2rem;margin:.05rem 0 .2rem;color:var(--muted);font:600 .72rem/1.4 ui-sans-serif,system-ui,sans-serif}.availability-status.checking{color:var(--gold)}.availability-status.available{color:var(--ink)}.availability-status.error{color:var(--error)}.discriminator{min-width:4.85rem;text-align:left;font-variant-numeric:tabular-nums}.discriminator span{display:inline-block;min-width:.62em;text-align:center}.discriminator.checking span{color:#8f6726;text-shadow:0 0 8px rgba(184,137,59,.34)}.credential-details{display:grid;grid-template-columns:1fr 1fr;gap:.45rem 1rem;margin:.7rem 0 .45rem}.credential-detail{min-width:0;display:grid;gap:.15rem}.credential-detail span{font:750 clamp(.42rem,1.5vw,.55rem)/1 ui-sans-serif,system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase}.credential-detail strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:650 clamp(.53rem,1.8vw,.7rem)/1.2 ui-sans-serif,system-ui,sans-serif}.library-card .member-barcode{height:clamp(2.6rem,9vw,3.6rem);margin:.3rem 0 .15rem}.library-card .signature-line{margin-top:.45rem}@media(max-width:32rem){.wizard-progress{margin-bottom:1.35rem;font-size:.63rem}.registration-welcome{padding:.5rem 0 1rem}.credential-details{gap:.32rem .65rem;margin:.45rem 0 .3rem}.credential-detail strong{font-size:clamp(.46rem,2.5vw,.62rem)}}.room-active{width:min(78rem,calc(100% - 2rem));padding:1rem;text-align:left}.room-active>.landing-only,.room-active>#edit-profile,.room-active>#logout{display:none!important}.reading-room{min-height:calc(100vh - 2rem);display:grid;grid-template-columns:15rem minmax(0,1fr);overflow:hidden;border:1px solid #a79e86;border-radius:1.1rem;background:#fffdf8;box-shadow:0 22px 60px rgba(18,45,37,.18)}.shelf-spine{display:flex;flex-direction:column;padding:1.35rem 1rem;background:#123c31;color:#f7f3df}.room-brand{display:flex;align-items:center;gap:.65rem;padding:0 .35rem 1.25rem;border-bottom:1px solid rgba(247,243,223,.22)}.room-brand img{width:2.55rem;height:2.55rem;object-fit:contain}.room-brand span{display:grid}.room-brand strong{font:800 1.35rem/.95 ui-sans-serif,system-ui,sans-serif;letter-spacing:-.04em}.room-brand small{margin-top:.28rem;color:#d9d1a4;font:650 .64rem/1 ui-sans-serif,system-ui,sans-serif}.member-label{position:relative;margin:1.15rem .25rem 1.5rem;padding:.7rem .75rem .62rem;transform:rotate(-.55deg);background:#eee7b8;color:#17261f;box-shadow:0 2px 0 #9c8d55;font-family:'Arial Narrow','Helvetica Neue Condensed',sans-serif}.member-label span{display:block;font-size:.66rem;font-weight:700}.member-label strong{display:block;margin-top:.22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.shelf-spine nav{display:grid;gap:.28rem}.shelf-tab{display:flex;justify-content:space-between;gap:.5rem;width:100%;padding:.7rem .65rem;border:0;border-left:3px solid transparent;background:transparent;color:#dfe6dc;text-align:left;font:650 .84rem/1.2 ui-sans-serif,system-ui,sans-serif}.shelf-tab.is-current{border-color:#d5a44d;background:rgba(255,255,255,.08);color:#fff}.shelf-tab:disabled{color:#879d94}.shelf-tab span{font-size:.62rem;font-weight:500}.room-side-actions{display:grid;justify-items:start;gap:.45rem;margin-top:auto;padding:.8rem .4rem 0}.text-action{padding:0;border:0;background:transparent;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;font:650 .76rem/1.3 ui-sans-serif,system-ui,sans-serif;cursor:pointer}.text-action:focus-visible,.desk-button:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.checkout-desk{min-width:0;padding:clamp(1.35rem,4vw,3.2rem)}.room-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding-bottom:1.2rem;border-bottom:2px solid #173e33}.room-header p{margin:0 0 .3rem;color:#5f746c;font:600 .8rem/1.2 ui-sans-serif,system-ui,sans-serif}.room-header h2{margin:0;font-size:clamp(2.4rem,6vw,4.6rem);line-height:.9;letter-spacing:-.05em}.shelf-count{display:grid;justify-items:end;flex:0 0 auto}.shelf-count strong{font:700 2.25rem/.9 Georgia,serif}.shelf-count span{margin-top:.2rem;color:#64786f;font:600 .67rem/1 ui-sans-serif,system-ui,sans-serif}.room-greeting{margin:1rem 0 1.5rem;color:#45665c;font:500 .9rem/1.5 ui-sans-serif,system-ui,sans-serif}.checkout-slip{display:grid;gap:1rem;padding:1.1rem 1.2rem;border:1px solid #c3b16f;border-left:5px solid #b8893b;background:#f3edc9;color:#17261f}.checkout-slip label{font:750 1rem/1.2 ui-sans-serif,system-ui,sans-serif}.checkout-slip p{margin:.3rem 0 0;color:#53665f;font:500 .75rem/1.4 ui-sans-serif,system-ui,sans-serif}.checkout-fields{display:grid;grid-template-columns:minmax(10rem,1fr) 8.5rem auto;gap:.55rem}.checkout-fields input,.checkout-fields select{min-width:0;padding:.72rem .8rem;border:1px solid #7c8f87;border-radius:.35rem;background:#fff;color:#17261f;font:600 .88rem/1.2 ui-sans-serif,system-ui,sans-serif}.desk-button{padding:.72rem 1rem;border:1px solid #123c31;border-radius:.35rem;background:#123c31;color:#fff;font:700 .78rem/1.2 ui-sans-serif,system-ui,sans-serif;cursor:pointer}.desk-button:disabled{opacity:.6;cursor:wait}.desk-message{min-height:1.1rem!important;margin:0!important;color:#274c40!important}.desk-message.is-error{color:#9c2f25!important}.library-ledger{margin-top:2rem}.library-ledger>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.7rem;border-bottom:1px solid #9eaaa5}.library-ledger h3{margin:0;font-size:1.35rem}.ledger-state{display:grid;gap:.35rem;padding:2.5rem 1rem;border-bottom:1px solid #d7dcd9;color:#586d65;text-align:center;font:500 .85rem/1.45 ui-sans-serif,system-ui,sans-serif}.ledger-state strong{color:#123c31;font:700 1.05rem/1.2 Georgia,serif}.library-list{list-style:none;margin:0;padding:0}.library-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:1.05rem .25rem;border-bottom:1px solid #d7dcd9}.library-entry h4{margin:0;font-size:1.05rem;line-height:1.25}.book-byline{margin:.25rem 0 .5rem;color:#50675e;font:500 .8rem/1.35 ui-sans-serif,system-ui,sans-serif}.book-facts{display:flex;flex-wrap:wrap;gap:.45rem;color:#687b74;font:600 .66rem/1.25 ui-sans-serif,system-ui,sans-serif}.book-facts span{padding:.22rem .4rem;border:1px solid #cad2ce;border-radius:.2rem}.entry-actions{display:grid;align-content:center;justify-items:end;gap:.55rem}.reading-status{color:#7b541d;font:700 .72rem/1.2 ui-sans-serif,system-ui,sans-serif}.remove-book{color:#8a3028}.library-ledger>.button{margin-top:1rem}@media(max-width:48rem){body{place-items:start center}.room-active{width:100%;padding:0}.reading-room{min-height:100vh;grid-template-columns:1fr;border:0;border-radius:0}.shelf-spine{display:grid;grid-template-columns:1fr auto;align-items:center;padding:.8rem 1rem}.room-brand{padding:0;border:0}.member-label,.shelf-spine nav{display:none}.room-side-actions{grid-column:2;grid-row:1;display:flex;margin:0;padding:0}.checkout-desk{padding:1.25rem 1rem 2rem}}@media(max-width:36rem){.room-side-actions #room-edit-profile{display:none}.room-header{align-items:start}.room-header h2{font-size:2.65rem}.checkout-fields{grid-template-columns:1fr}.library-entry{grid-template-columns:1fr}.entry-actions{grid-auto-flow:column;justify-content:space-between;justify-items:start}}@media(prefers-reduced-motion:reduce){.member-label{transform:none}}