body{font-family:var(--font-body);background:var(--bg);color:var(--ink);margin:0}a{color:var(--link)}h1{font-size:22px;margin:0 0 12px}.err{color:var(--err);font-size:13px}.ok{color:var(--ok);font-size:13px}.muted{color:var(--muted);font-size:12px}.flex-center{display:flex;align-items:center;justify-content:center}.row{display:flex;align-items:center}.auth-card{max-width:420px;margin-inline:auto}.avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;background:var(--field);border:2px solid var(--line);display:block;margin:0 auto 8px}.banner{width:100%;max-width:392px;aspect-ratio:1600/400;object-fit:cover;border-radius:var(--radius-sm);display:block;margin:0 auto 8px;background:var(--field)}.pd-banner-wrap{position:relative;width:100%;max-width:392px;margin:0 auto}.pd-banner-wrap .banner{margin:0}.pd-avatar-wrap{position:relative;width:96px;flex:0 0 auto;margin:-40px 0 8px}.pd-avatar-wrap .avatar{margin:0}.pd-change{position:absolute;cursor:var(--cur-paw-point, pointer);font-size:.72rem;font-weight:700;color:var(--cream);background:rgba(0,0,0,.6);border:1px solid var(--glass-hairline);border-radius:var(--r-pill,999px);transition:background .15s}.pd-change:hover{background:rgba(0,0,0,.82)}.pd-change-banner{right:8px;bottom:14px;padding:4px 10px}.pd-change-avatar{right:0;bottom:0;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;padding:0}.id-head{display:flex;gap:16px;align-items:flex-start}.id-avatar-drop{flex:1;min-width:0;text-align:left}.id-avatar-drop .character-ref-dz-empty{align-items:flex-start;text-align:left}@media (max-width:600px){.id-head{flex-direction:column;align-items:center;text-align:center}.id-avatar-drop{width:100%}.id-avatar-drop .character-ref-dz-empty{align-items:center;text-align:center}}.nav-badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;border-radius:9px;background:var(--danger,#e5484d);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}.nav-badge[hidden]{display:none}.soc-field label{ display:inline-flex; align-items:center; gap:8px; }.soc-field-icon{ width:18px; height:18px; opacity:.9; flex-shrink:0; }.soc-fields{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; margin-bottom:4px; }@media(max-width:700px){ .soc-fields{ grid-template-columns:1fr; } }.notif-empty{padding:30px 12px;text-align:center;color:var(--ink-soft);font-style:italic}.notif-row{display:block;text-decoration:none;background:var(--panel-2);border:1px solid var(--border-color);border-radius:3px;padding:8px 12px;margin-bottom:6px;transition:border-color .15s}.notif-row:hover{border-color:rgba(200,160,60,.4)}.notif-row-unread{border-left:3px solid var(--accent-gold)}.notif-row-link{cursor:var(--cur-paw-point, pointer)}.notif-row-msg{color:var(--ink);font-size:.85rem;line-height:1.4;word-wrap:break-word}.notif-row-ts{margin-top:4px;font-size:.7rem;color:var(--ink-soft);font-family:var(--mono)}.notif-row .ok{color:var(--ok-ink)}.notif-pop{z-index:1200;width:320px;max-width:calc(100vw - 16px);background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.5);overflow:hidden;display:flex;flex-direction:column;max-height:min(70vh,460px)}.notif-pop-head{padding:10px 14px;font-family:var(--serif);font-weight:700;font-size:.9rem;color:var(--gold);border-bottom:1px solid var(--line-soft)}.notif-pop-list{overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px;min-height:40px}.notif-pop-empty{margin:6px 4px;color:var(--ink-soft);font-size:.82rem}.notif-pop-row{display:flex;align-items:stretch;gap:6px}.notif-pop-row .notif-row{flex:1;min-width:0;margin:0}.notif-tick{flex:0 0 auto;align-self:center;width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.04);color:var(--gold);font-size:.9rem;cursor:var(--cur-paw-point, pointer)}.notif-tick:hover{background:color-mix(in srgb, var(--gold) 16%, transparent)}.notif-pop-foot{display:block;text-align:center;padding:9px;border-top:1px solid var(--line-soft);color:var(--gold);text-decoration:none;font-size:.82rem;font-weight:700}.notif-pop-foot:hover{background:color-mix(in srgb, var(--gold) 10%, transparent)}.cc{position:fixed;bottom:0;right:16px;width:300px;max-width:calc(100vw - 24px);z-index:1100;background:var(--panel);border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;box-shadow:0 8px 30px rgba(0,0,0,.45);display:flex;flex-direction:column;overflow:hidden;transition:max-height .2s ease}@media (max-width:768px){.cc{bottom:calc(62px + env(safe-area-inset-bottom, 0px));border-bottom:1px solid var(--line);border-radius:12px}}body:has(.cc) .canvas>#cypher-main{padding-bottom:86px}@media (min-width:769px){body:has(.cc) .canvas>.site-foot .wrap{padding-right:316px}}@media (max-width:768px){body:has(.cc) .canvas>.site-foot{padding-bottom:80px}}.cc--collapsed{max-height:42px}.cc--open{max-height:min(70vh,460px)}.cc-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:color-mix(in srgb, var(--gold) 12%, transparent);border:0;border-bottom:1px solid var(--line-soft);cursor:var(--cur-paw-point, pointer);text-align:left;font:inherit;color:var(--gold);font-weight:700;font-size:.85rem}.cc-title{flex:1}.cc-badge{background:var(--gold);color:#1a1510;font-size:.68rem;font-weight:800;border-radius:999px;padding:1px 7px;min-width:16px;text-align:center}.cc--collapsed .cc-bodywrap{display:none}.cc-bodywrap{display:flex;flex-direction:column;flex:1;min-height:0}.cc-list{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:7px;max-height:340px}.cc-msg{display:flex;gap:7px;align-items:flex-start;font-size:.82rem}.cc-ava{flex:0 0 auto;width:24px;height:24px;border-radius:50%;overflow:hidden;background:var(--field)}.cc-ava img{width:100%;height:100%;object-fit:cover;display:block}.cc-body{min-width:0;line-height:1.4}.cc-who{color:var(--gold-soft);text-decoration:none;font-weight:700;cursor:var(--cur-paw-point, pointer)}.cc-who:hover{color:var(--gold);text-decoration:underline}.cc-text{color:var(--ink);word-break:break-word}.cc-inputbar{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line-soft)}.cc-input{flex:1;margin:0;height:34px;box-sizing:border-box}.cc-send{flex:0 0 auto;background:var(--btn-primary-bg);color:var(--btn-primary-ink);border:1px solid var(--gold);border-radius:8px;padding:0 12px;font:inherit;font-weight:700;cursor:var(--cur-paw-point, pointer)}.cc-send:hover{background:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-ink)}.cc-report{flex:0 0 auto;align-self:flex-start;border:0;background:none;color:var(--ink-soft);font-size:.72rem;cursor:var(--cur-paw-point, pointer);opacity:0;transition:opacity .15s}.cc-msg:hover .cc-report{opacity:.7}.cc-report:hover{opacity:1;color:var(--danger,#c66)}.cc-emoji-btn{flex:0 0 auto;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.04);cursor:var(--cur-paw-point, pointer);width:32px;color:var(--ink)}.cc-emoji-pal{display:flex;flex-wrap:wrap;gap:2px;padding:6px 8px;border-top:1px solid var(--line-soft);max-height:120px;overflow-y:auto}.cc-emoji{border:0;background:none;font-size:1.05rem;cursor:var(--cur-paw-point, pointer);padding:2px;border-radius:6px;line-height:1}.cc-emoji:hover{background:color-mix(in srgb, var(--gold) 14%, transparent)}@media(max-width:480px){.cc{right:8px;width:calc(100vw - 16px)}}.tg-thread{display:flex;flex-direction:column;gap:10px;margin:12px 0}.tg-msg{display:flex;align-items:flex-end;gap:8px;max-width:85%}.tg-msg-own{align-self:flex-end;flex-direction:row-reverse}.tg-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;cursor:var(--cur-paw-point, pointer);border:2px solid var(--line);transition:border-color .15s}.tg-avatar:hover{border-color:var(--gold)}.tg-bubble{background:var(--panel);border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:8px 12px 6px;max-width:100%;word-break:break-word}.tg-msg-own .tg-bubble{border-radius:14px 14px 4px 14px;background:color-mix(in srgb, var(--gold) 13%, transparent);border-color:color-mix(in srgb, var(--gold) 30%, transparent)}.tg-sender{display:block;color:var(--gold);font-weight:700;font-size:.73rem;margin-bottom:3px;white-space:nowrap}.tg-msg-own .tg-sender{text-align:right}.tg-content{color:var(--ink);font-size:.85rem;line-height:1.45;overflow-wrap:anywhere;min-width:0}.tg-time{display:block;color:var(--ink-soft);font-size:.7rem;font-family:var(--mono);text-align:right;margin-top:4px}.ph-social-link{ display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border-radius:999px; background:var(--panel-2); color:var(--ink); font-size:.8rem; text-decoration:none; border:1px solid var(--line-soft); }.ph-social-link:hover{ background:var(--panel); }.ph-social-icon{ width:16px; height:16px; opacity:.85; flex-shrink:0; }.ph-aside .ph-social-link{ font-size:.78rem; padding:0; max-width:none; }.ph-aside .ph-social-link--icon{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; padding:0; border-radius:50%; }.ph-aside .ph-social-link--icon .ph-social-icon{ width:18px; height:18px; opacity:1; }.ph-aside .ph-social-val{ display:none; }.ph-socials{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.profile-fka{ margin-top:12px; padding:7px 12px; border:1px dashed var(--line); border-radius:var(--radius);  background:var(--panel-2); color:var(--ink-soft); font-size:.8rem; }.profile-fka .fka-name{ color:var(--cream); font-weight:700; }.pcase-band{margin-top:14px}.pcase-head{margin:0 0 10px;font-family:var(--serif)}.pcase-row{display:flex;flex-wrap:wrap;gap:14px}.pcase-frame{flex:1 1 200px;max-width:260px;display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel-2);transition:border-color .15s,transform .15s}.pcase-frame:hover{border-color:var(--gold-soft);transform:translateY(-2px)}.pcase-img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--field)}.pcase-cap{display:flex;flex-direction:column;gap:1px;padding:8px 10px}.pcase-label{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.pcase-title{font-family:var(--serif);font-style:italic;color:var(--ink)}.pcase-by{font-size:.72rem;color:var(--ink-soft)}.pv-thumbs{display:flex;gap:8px;flex-wrap:wrap}.pv-thumb{width:96px;height:96px;border-radius:8px;object-fit:cover;border:1px solid var(--line);background:var(--field)}.pc-card{display:flex;flex-direction:column;gap:10px;min-width:min(320px,80vw)}.pc-avatar{width:88px;height:88px;border-radius:14px;object-fit:cover;background:var(--field);align-self:center}.pc-id{text-align:center}.pc-name{margin:0}.pc-handle{margin:2px 0 0}.pc-bio{margin:0;color:var(--ink);font-size:.88rem;text-align:center;max-height:7em;overflow:auto;white-space:pre-wrap}.pc-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:2px}.pc-follow.is-on{background:var(--gold-soft);color:#1a1510}.tg-sender[data-action]{cursor:var(--cur-paw-point, pointer)}.tg-sender[data-action]:hover{text-decoration:underline}.report{border-top:1px solid var(--line);padding-top:10px;margin-top:12px}.report.is-unread{border-left:3px solid var(--accent);padding-left:12px;margin-left:-12px}.list-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.list-row:first-child{border-top:none}.list-row .lr-main{flex:1 1 auto;min-width:0}.list-row .lr-main p{margin:.1em 0}.list-row .lr-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.list-row-avatar{width:42px;height:42px;border-radius:12px;object-fit:cover;background:var(--field);flex:0 0 auto}.feed-row .lr-main-link{display:block;text-decoration:none;color:inherit;border-radius:8px;margin:-4px -6px;padding:4px 6px;transition:background .15s}.feed-row .lr-main-link:hover{background:color-mix(in srgb, var(--gold) 8%, transparent)}.feed-row .lr-main-link p:first-child{color:var(--ink)}.empty{color:var(--muted)}.profile-hero{position:relative;overflow:hidden}.ph-cover{--ph-accent:var(--gold);position:relative;margin:-11px -14px 0;height:112px;overflow:hidden;border-bottom:1px solid var(--line-soft,var(--line));background:var(--panel-2)}.ph-cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.ph-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}.ph-body{flex:1 1 220px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 12px;min-width:0}.ph-ava-wrap{flex:0 0 auto;margin-top:-72px;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:9px;width:175px}.ph-ava-frame{position:relative;line-height:0}.ph-ava{width:175px;height:175px;border-radius:32px;object-fit:cover;border:3px solid var(--panel);box-shadow:0 0 0 1px var(--gold-soft), var(--elev-2);background:var(--panel-2)}.ph-ava.ph-ava-empty{display:flex;align-items:center;justify-content:center;font-weight:800;font-size:44px;color:var(--muted);box-sizing:border-box}.ph-id{flex:1 1 160px;min-width:min(160px, 100%);padding-top:6px}.ph-aside{flex:0 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px;align-items:flex-end;padding-top:6px}.ph-name{margin:0;font-size:1.55rem;font-weight:800;color:var(--cream);line-height:1.12;word-break:break-word}.ph-handle{color:var(--ink-soft,var(--muted));font-size:.9rem;margin:2px 0 0}.ph-meta{color:var(--ink-soft,var(--muted));font-size:.85rem;margin-top:5px}.ph-bio{margin-top:10px;max-width:64ch;color:var(--ink);font-size:.88rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.ph-bio:empty{display:none}.ph-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}.ph-actions form{margin:0}@media (max-width:720px){.ph-head{flex-direction:column;align-items:stretch;gap:10px}.ph-body{gap:6px 8px}.ph-id{flex-basis:140px;min-width:min(120px,100%);padding-top:0}.ph-aside{padding-top:0;align-items:flex-start}.ph-ava-wrap{width:140px;margin-top:-56px;align-self:flex-start}.ph-ava{width:140px;height:140px;border-radius:24px}.ph-name{font-size:1.3rem}}.report-blurb{font-size:.82rem;color:var(--ink-soft,var(--muted));margin:0 0 12px;line-height:1.5}.report-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft,var(--muted));margin:10px 0 4px}.report-select,.report-note{width:100%;box-sizing:border-box;background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm,8px);padding:9px 11px;font-size:.9rem;font-family:inherit}.report-select:focus,.report-note:focus{outline:none;border-color:var(--gold,var(--accent))}.report-note{resize:vertical;min-height:64px}.report-btn-row{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.modal-window.page-modal{max-width:min(720px,94vw)}.modal-window.page-modal #global-modal-body{max-height:min(70vh,640px);overflow-y:auto;padding-right:6px}.modal-window.cypher-legal-modal{width:min(920px,95vw);max-width:920px;height:min(82vh,82dvh);padding:0;overflow:hidden}.modal-window.cypher-legal-modal #global-modal-body{height:100%}.tpl-legal-body{display:flex;height:100%;min-height:0;overflow:hidden}.tpl-legal-nav{width:200px;background:var(--bg-header);border-right:1px solid var(--line);padding:20px 0;display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}.tpl-legal-tab{background:transparent;border:none;color:var(--ink-soft);text-align:left;padding:12px 20px;cursor:var(--cur-paw-point,pointer);font-family:var(--sans);border-left:3px solid transparent;transition:all 0.2s}.tpl-legal-tab:hover{background:var(--well);color:var(--cream)}.tpl-legal-tab.active{background:var(--well-deep);color:var(--accent-gold);border-left-color:var(--accent-gold)}.tpl-legal-content{flex:1;min-width:0;padding:40px;overflow-y:auto;background:var(--panel)}.tpl-legal-content h1,.tpl-legal-content h2,.tpl-legal-content h3{font-family:var(--serif);color:var(--ink);font-size:1.6rem;border-bottom:2px solid var(--line);padding-bottom:15px;margin-top:0}.tpl-legal-content p{color:var(--ink);line-height:1.6;font-size:.95rem}.tpl-legal-content strong{color:var(--accent-gold)}.legal-section{display:none}.legal-section.active{display:block}@media(max-width:700px){.modal-window.cypher-legal-modal{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100dvh;border-radius:0}.tpl-legal-nav{width:100%;flex-direction:row;overflow-x:auto;padding:10px 8px;border-right:none;border-bottom:1px solid var(--line)}.tpl-legal-body{flex-direction:column}.tpl-legal-tab{padding:8px 12px;white-space:nowrap;font-size:.8rem}.tpl-legal-content{padding:20px}}.engine-readout-line{display:flex;gap:10px;align-items:baseline;margin:6px 0;font-size:.9rem}.engine-readout-line code{font-family:var(--mono,monospace);font-size:.8rem}.hp-line{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}.nav-circle:focus-visible,.of-rail-btn.is-active:focus-visible,.modal-close:focus-visible{outline:2px solid var(--gold,var(--accent));outline-offset:2px}.tk-stats{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}.tk-desk{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:820px){.tk-desk{grid-template-columns:1fr}}.tk-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.tk-filters input,.tk-filters select{margin:0;height:34px;box-sizing:border-box}.tk-filters .tk-filter-q{flex:1 1 240px;width:auto;min-width:180px}.tk-filters select{flex:1 1 160px;width:auto;min-width:0;padding:0 32px 0 8px}.tk-mine{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;color:var(--ink-soft);white-space:nowrap}.tk-mine input{height:auto}.chk-row{display:flex;align-items:flex-start;gap:8px;font-size:.85rem;color:var(--ink-soft);cursor:var(--cur-paw-point, pointer)}.share-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.share-row:last-child{border-bottom:0}.share-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0}.share-label{font-weight:700;font-size:.82rem}.share-link{font-family:var(--mono);font-size:.78rem;color:var(--gold-soft);text-decoration:none;word-break:break-all}.share-link:hover{color:var(--gold);text-decoration:underline}.share-peeks{font-size:.72rem}.share-blocked{font-size:.72rem;color:var(--danger,#c66)}.share-acts{display:flex;gap:6px;flex:0 0 auto}.chk-row input{margin:2px 0 0;flex:0 0 auto}.remember-choice{--remember-control-off:var(--panel-2);--remember-control-on:var(--accent,var(--gold));--remember-control-knob:var(--ink-soft);--remember-control-on-knob:var(--accent-ink,var(--bg));display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;width:100%;box-sizing:border-box;margin:14px 0 18px;padding:6px 0;font-family:var(--font-body,var(--sans,sans-serif));font-weight:400;text-transform:none;letter-spacing:normal;cursor:pointer}.remember-choice__copy{display:grid;gap:4px;min-width:0}.remember-choice__label{font:700 1rem/1.35 var(--font-body,var(--sans,sans-serif));color:var(--remember-label,var(--ink,var(--cream)));text-transform:none;letter-spacing:normal}.remember-choice__hint{font:400 .9rem/1.45 var(--font-body,var(--sans,sans-serif));color:var(--remember-hint,var(--ink-soft,var(--muted)));text-transform:none;letter-spacing:normal}.remember-choice input[type=checkbox]{appearance:auto;position:static;width:20px;height:20px;min-width:20px;margin:2px 0 0;padding:0;opacity:1;accent-color:var(--remember-control-on);cursor:inherit}.remember-choice__checkbox:focus-visible{outline:2px solid var(--link,var(--gold));outline-offset:3px}.remember-choice--switch{grid-template-columns:minmax(0,1fr) auto;align-items:center}.remember-choice__switch{position:relative;width:44px;height:26px;box-sizing:border-box;margin:0;padding:0;border:1px solid var(--remember-border,var(--line));border-radius:999px;background:var(--remember-control-off);cursor:var(--cur-paw-point,pointer);transition:background .16s,border-color .16s}.remember-choice__switch:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--remember-control-knob);transition:left .16s,background .16s}.remember-choice__switch[aria-pressed="true"],.remember-choice__switch.is-on{border-color:var(--remember-control-on);background:var(--remember-control-on)}.remember-choice__switch[aria-pressed="true"]:before,.remember-choice__switch.is-on:before{left:21px;background:var(--remember-control-on-knob)}.remember-choice__switch:focus-visible{outline:2px solid var(--link,var(--gold));outline-offset:3px}.remember-choice--gate{margin:2px 0 3px;padding:8px 0}@media(forced-colors:active){.remember-choice__switch{border-color:ButtonText;background:ButtonFace}.remember-choice__switch:before{background:ButtonText}.remember-choice__switch[aria-pressed="true"]{background:Highlight}.remember-choice__switch[aria-pressed="true"]:before{background:HighlightText}}.tk-modrow{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px}.tk-assign{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}.tk-queue{max-height:74vh;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px}.tk-detail{min-height:220px}.tk-detail-split{display:flex;gap:0;align-items:flex-start}.tk-detail-main{flex:1;min-width:0}.tk-detail-side{flex:0 0 300px;min-width:0;padding-left:16px;margin-left:16px;border-left:1px solid var(--line-soft,var(--line));display:flex;flex-direction:column;gap:14px}.tk-detail-side .tk-modconsole{margin:0}.tk-reply-form .character-ref-dropzone{margin-top:4px;min-height:0;padding:8px 12px;display:flex;align-items:center;text-align:left}.tk-reply-form .character-ref-dz-empty{flex-direction:row;gap:8px}.tk-reply-form .character-ref-dz-icon{font-size:1.1rem}.tk-reply-form .character-ref-dz-title{font-size:.8rem}.tk-reply-form .character-ref-dz-hint{display:none}.tk-reply-form .character-ref-preview-img{max-height:60px;width:auto;max-width:140px;margin:0}.tk-reply-form textarea{min-height:64px}@media(max-width:820px){.tk-detail-split{flex-direction:column}.tk-detail-side{flex:none;padding-left:0;margin-left:0;border-left:0;padding-top:14px;margin-top:14px;border-top:1px solid var(--line-soft,var(--line))}}.tk-detail-empty{display:flex;align-items:center;justify-content:center;min-height:200px;text-align:center}.tk-detail-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.tk-detail-title{margin:0;font-size:1.05rem}.tk-row.is-active{border-color:var(--gold,var(--accent));box-shadow:0 0 0 1px var(--gold-soft,var(--accent))}.tk-stat{text-align:center;padding:3px 10px;background:linear-gradient(145deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:var(--r-sm,8px)}.tk-stat-num{font-family:var(--serif,inherit);font-size:.92rem;font-weight:800;color:var(--gold,var(--accent))}.tk-stat-label{margin-left:5px;font-family:var(--mono,monospace);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft,var(--muted))}.tk-row{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm,8px);border-left:3px solid transparent;padding:9px 11px;margin-bottom:8px;text-decoration:none}.tk-row:hover{background:rgba(232,168,48,.06);border-left-color:var(--gold,var(--accent))}.tk-row-line1{display:flex;align-items:center;gap:7px;font-size:.85rem;font-weight:700;color:var(--ink)}.tk-ref{font-family:var(--mono,monospace);font-size:.72rem;font-weight:700;color:var(--gold-soft,var(--accent));flex:0 0 auto}.tk-subject{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tk-row-line2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:.7rem;color:var(--ink-soft,var(--muted))}.tk-who{font-weight:700}.tk-prio{display:inline-block;width:8px;height:8px;border-radius:50%;flex:0 0 auto}.tk-prio-low{background:var(--ink-soft,var(--muted))}.tk-prio-normal{background:var(--gold-soft,var(--accent))}.tk-prio-high{background:var(--amber,#e5a83a)}.tk-prio-urgent{background:var(--red,#e5484d);box-shadow:0 0 0 2px color-mix(in srgb, var(--red,#e5484d) 30%, transparent)}.tk-cat{font-family:var(--mono,monospace);font-size:.64rem;padding:1px 7px;border-radius:999px;text-transform:capitalize;background:rgba(0,0,0,.25);border:1px solid var(--line);color:var(--ink-soft,var(--muted))}.tk-chip{display:inline-block;font-size:.64rem;font-weight:800;padding:1px 8px;border-radius:999px;text-transform:capitalize}.tk-chip-open{color:var(--gold,var(--accent));background:color-mix(in srgb, var(--gold,var(--accent)) 18%, transparent);border:1px solid color-mix(in srgb, var(--gold,var(--accent)) 45%, transparent)}.tk-chip-answered{color:var(--link,#7cf);background:color-mix(in srgb, var(--link,#7cf) 18%, transparent);border:1px solid color-mix(in srgb, var(--link,#7cf) 45%, transparent)}.tk-chip-resolved{color:var(--ok);background:color-mix(in srgb, var(--ok) 18%, transparent);border:1px solid color-mix(in srgb, var(--ok) 45%, transparent)}.tk-chip-closed{color:var(--ink-soft,var(--muted));background:rgba(0,0,0,.25);border:1px solid var(--line)}.tk-report-badge{display:inline-flex;align-items:center;gap:6px;padding:1px 9px;border-radius:999px;font-family:var(--mono,monospace);font-size:.62rem;font-weight:800;letter-spacing:.05em;color:var(--red,#e5484d);background:color-mix(in srgb, var(--red,#e5484d) 14%, transparent);border:1px solid color-mix(in srgb, var(--red,#e5484d) 45%, transparent)}.tk-modconsole{display:flex;flex-direction:column;gap:12px;margin:6px 0 16px;padding:14px;border:1px solid color-mix(in srgb, var(--red,#e5484d) 22%, var(--line));border-radius:var(--r-md,10px);background:color-mix(in srgb, var(--red,#e5484d) 4%, var(--panel))}.tk-modbar{display:flex;flex-wrap:wrap;gap:8px}.tk-mod-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:999px;font-size:.78rem;font-weight:800;cursor:pointer;color:var(--ink);background:var(--panel);border:1px solid var(--line);font-family:inherit;transition:transform .15s,box-shadow .15s}.tk-mod-btn:hover{transform:translateY(-1px);box-shadow:var(--elev-1,var(--elev-2))}.tk-mod-warn{color:var(--amber,#e5a83a);border-color:color-mix(in srgb, var(--amber,#e5a83a) 45%, transparent);background:color-mix(in srgb, var(--amber,#e5a83a) 10%, transparent)}.tk-mod-malicious{color:var(--accent-orange,#e08a3a);border-color:color-mix(in srgb, var(--accent-orange,#e08a3a) 45%, transparent);background:color-mix(in srgb, var(--accent-orange,#e08a3a) 10%, transparent)}.tk-mod-ban{color:var(--red,#e5484d);border-color:color-mix(in srgb, var(--red,#e5484d) 50%, transparent);background:color-mix(in srgb, var(--red,#e5484d) 10%, transparent)}.tk-mod-permaban{color:var(--cream,#f5edd8);border-color:var(--red,#e5484d);background:color-mix(in srgb, var(--red,#e5484d) 40%, transparent)}.tk-mod-escalate{color:var(--accent-blue,#7cf);border-color:color-mix(in srgb, var(--accent-blue,#7cf) 50%, transparent);background:color-mix(in srgb, var(--accent-blue,#7cf) 10%, transparent)}.tk-mod-reject{color:var(--ink-soft,var(--muted));border-color:var(--line);background:color-mix(in srgb, var(--ink-soft,#888) 8%, transparent)}.tk-console-head{font-weight:800;font-size:.82rem;color:var(--cream,var(--ink));margin:0 0 2px}.tk-msg{border-top:1px solid var(--line-soft,var(--line));padding-top:10px;margin-top:12px}.tk-msg-who{font-weight:700;font-size:.85rem}.tk-msg.internal{border-left:3px solid var(--amber,#e5a83a);padding-left:10px;background:color-mix(in srgb, var(--amber,#e5a83a) 6%, transparent)}#cypher-curtain{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;padding:20px;z-index:400}.cypher-curtain-card{background:var(--panel);border-radius:var(--radius);padding:26px;max-width:380px;text-align:center}.cypher-curtain-card h2{font-size:18px;margin:0 0 10px}.cypher-curtain-card p{color:#aaa;font-size:14px;margin:0 0 16px}button.is-busy,button[disabled]{opacity:.55;cursor:default}[aria-pressed]{cursor:pointer}[aria-pressed="true"],.is-on{background:var(--accent);color:var(--accent-ink)}img{opacity:1;transition:opacity .35s ease}img.is-error{opacity:.35}.cf-wrap{width:min(880px,94vw)}.cf-h{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin:18px 0 6px}table.cf{width:100%;border-collapse:collapse;font-size:13px}table.cf td{padding:6px 8px;border-top:1px solid var(--line);vertical-align:top}.cf-lamp{width:74px;font-weight:700;font-size:11px;letter-spacing:1px}.cf-label{width:34%}.cf-detail{color:var(--muted)}.cf-pass .cf-lamp{color:var(--ok)}.cf-gap .cf-lamp{color:#f0c95c}.cf-missing .cf-lamp{color:var(--err)}.cf-tally{font-size:13px;color:var(--muted)}table.gt{width:100%;border-collapse:collapse;font-size:13px}table.gt td{padding:8px;border-top:1px solid var(--line);vertical-align:top}.gt-state{width:70px;font-weight:700;font-size:11px;letter-spacing:1px}.gt-open{color:var(--ok)}.gt-shut{color:var(--err)}.gt-desc{color:var(--muted)}.gt-act{width:110px}.gt-act button{margin-top:0}body.socket-offline .cypher-live-dot{opacity:.4}#cypher-bar{position:fixed;top:0;left:0;height:4px;width:0;z-index:11200;opacity:0;pointer-events:none;transition:width .25s ease-out,opacity .3s ease;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--fox) 25%,transparent) 14%,var(--fox-deep) 42%,var(--fox) 76%,var(--fox-tip))}#cypher-bar.cypher-bar-on{opacity:1}#cypher-bar::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--fox-tip) 80%,transparent),transparent) no-repeat;background-size:40% 100%}#cypher-bar::after{content:"";position:absolute;top:0;right:-7px;width:14px;height:14px;background:var(--brand-glyph-ink,transparent);-webkit-mask:var(--brand-glyph,none) center/contain no-repeat;mask:var(--brand-glyph,none) center/contain no-repeat}#cypher-bar.cypher-bar-on::before{animation:cypher-bar-run 1.1s ease-in infinite}#cypher-bar.cypher-bar-on::after{animation:cypher-bar-step .5s steps(2,jump-none) infinite}@keyframes cypher-bar-run{from{background-position:-70% 0}to{background-position:170% 0}}@keyframes cypher-bar-step{from{transform:rotate(-14deg)}to{transform:rotate(14deg)}}@media (forced-colors:active){#cypher-bar{forced-color-adjust:none;background:Highlight}#cypher-bar::before,#cypher-bar::after{display:none}}#cypher-main{transition:opacity .16s ease}body.cypher-navigating #cypher-main{opacity:.45}@media (prefers-reduced-motion:reduce){#cypher-bar,#cypher-main{transition:none}#cypher-bar::before{display:none}#cypher-bar.cypher-bar-on::after{animation:none}*{animation:none!important;transition:none!important}}.mkt-nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-left:auto;margin-right:8px;min-width:0}.mkt-nav a{color:var(--cream);text-decoration:none;font-weight:700;font-size:.84rem;padding:6px 10px;border-radius:8px}.mkt-nav a:hover{color:var(--gold)}.mkt-nav .mkt-start{padding:7px 14px}.lp-eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--gold);font-weight:800;margin:0 0 10px}.lp-title{font-family:var(--serif);font-size:2.4rem;line-height:1.14;margin:0 0 12px}.lp-sub{font-size:1rem;line-height:1.55;color:var(--ink-soft);margin:0 0 16px;max-width:52ch}.lp-cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.nav-circle .ico{width:19px;height:19px;vertical-align:middle}.of-rail-btn .ico{width:22px;height:22px;vertical-align:middle}.brand-mark{font-family:var(--serif);font-weight:800;font-size:20px;color:var(--cream);text-decoration:none;letter-spacing:.3px}.brand-mark:hover{color:var(--gold)}.pd-ava-none{width:100%;height:100%;box-sizing:border-box;border-radius:32px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:.82rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);background:var(--panel-2);border:3px solid var(--panel);box-shadow:0 0 0 1px var(--gold-soft),var(--elev-2)}.nav-brand{margin-right:auto;align-self:center}.nav-circle{position:relative}.nav-circle.is-active,.of-rail-btn.is-active{background:var(--panel-2);color:var(--gold-ink)}.post-body{white-space:pre-wrap}.dash-head h1{font-family:var(--serif);margin:6px 0 14px}.dash-tiles{margin-bottom:16px}a.stat-tile{text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}a.stat-tile:hover{border-color:var(--gold-soft);transform:translateY(-2px)}.dash-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.dash-vine{display:flex;flex-direction:column;gap:2px;margin:6px 0}.dash-vine-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:8px 10px;border-radius:8px;text-decoration:none;color:inherit;border-bottom:1px solid var(--line-soft);transition:background .15s}.dash-vine-row:last-child{border-bottom:0}a.dash-vine-row:hover{background:color-mix(in srgb, var(--gold) 8%, transparent)}.dash-vine-text{min-width:0;color:var(--ink)}.dash-vine-when{flex:0 0 auto;font-family:var(--mono);font-size:.68rem;color:var(--ink-soft)}.dash-vine-empty{margin:8px 10px}@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/nunito-latin-400-normal.woff2) format('woff2')}@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/nunito-latin-600-normal.woff2) format('woff2')}@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/nunito-latin-700-normal.woff2) format('woff2')}@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/nunito-latin-800-normal.woff2) format('woff2')}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/playfair-display-latin-700-normal.woff2) format('woff2')}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/playfair-display-latin-800-normal.woff2) format('woff2')}@font-face{font-family:'Nunito Fallback';font-style:normal;font-weight:400 800;src:local('Arial'),local('Helvetica Neue'),local('Helvetica'),local('Roboto'),local('Liberation Sans'),local('Arimo');size-adjust:101.2765%;ascent-override:99.8258%;descent-override:34.8551%;line-gap-override:0%}@font-face{font-family:'Playfair Display Fallback';font-style:normal;font-weight:400 800;src:local('Times New Roman'),local('Times'),local('Georgia'),local('Liberation Serif'),local('Tinos');size-adjust:106.5838%;ascent-override:101.5163%;descent-override:23.5495%;line-gap-override:0%}






*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;height:100vh;height:100svh;overflow:hidden}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--amber)}

[hidden] { display: none !important; }
a{color:var(--gold-ink);text-decoration:none}
button{font-family:inherit;cursor:var(--cur-paw-point, pointer);border:none;background:none;color:inherit}

@keyframes spin{to{transform:rotate(360deg)}}

.cypher-btn {
  background: var(--bg-element);
  color: var(--text-bright);
  border: 1px solid var(--border-color);
  padding: 7px 16px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  cursor:var(--cur-paw-point, pointer);
  border-radius: 8px;
  transition: var(--trans-fast);
}
.cypher-btn:hover {
  background: var(--accent-orange);
  border-color: var(--accent-gold);
  color: #1a1208;
  box-shadow: 0 3px 12px rgba(200,120,48,.3);
}
.cypher-btn:active { transform: translateY(1px); opacity: 0.85; }
.cypher-btn.small { padding: 4px 10px; font-size: 12px; }

.error-view {
  padding: 50px;
  text-align: center;
  color: var(--red-ink);
  border: 1px dashed var(--accent-red);
  margin: 20px;
  background: rgba(139, 58, 58, 0.05);
}

hr {
  border: 0;
  border-top: 1px solid var(--border-color);
  margin: 20px 0;
}
.text-red {
  color: var(--red-ink) !important;
}
.clickable {
  cursor:var(--cur-paw-point, pointer);
}

.row {
  display: flex;
  align-items: center;
}



h1, .page-title {
  font-family: var(--serif);
  font-weight: 800;
}

.citizen-chip {
  appearance: none; -webkit-appearance: none; background: none; border: 0; padding: 2px;
  display: inline-flex; align-items: center; gap: 8px; text-align: left; max-width: 100%;
  color: var(--ink); cursor: var(--cur-paw-point, pointer); border-radius: var(--r-pill, 999px);
}
.citizen-chip:hover .citizen-chip-name { color: var(--gold-ink); }
.citizen-chip-ava { width: var(--avatar-sm); height: var(--avatar-sm); border-radius: 50%; object-fit: cover; flex: 0 0 auto; border: 1px solid var(--line); }
.citizen-chip-name { font-weight: 700; font-size: .88rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.citizen-chip--sm .citizen-chip-ava { width: var(--avatar-xs); height: var(--avatar-xs); }
.citizen-chip--sm .citizen-chip-name { font-size: .8rem; }
.citizen-chip--lg .citizen-chip-ava { width: var(--avatar-md); height: var(--avatar-md); }
.citizen-chip--lg .citizen-chip-name { font-size: 1rem; }


#toggle-sidebar {
  border-right: 1px solid var(--border-color);
}
#toggle-header {
  border-left: 1px solid var(--border-color);
  order: 10;
}
#toggle-sidebar:hover,
#toggle-header:hover {
  background: var(--bg-element) !important;
  color: var(--text-bright) !important;
}

.directory-container {
  margin-top: 20px;
  padding: 10px;
  border-top: 1px solid var(--line);
}
.resident-list-scroller {
  max-height: 150px;
  overflow-y: auto;
  background: var(--well);
  border-radius: 5px;
  padding: 5px;
}
.directory-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  cursor:var(--cur-paw-point, pointer);
  border-bottom: 1px solid var(--line-soft);
  font-size: 0.85em;
  transition: 0.2s;
}
.directory-item:hover {
  background: color-mix(in srgb, var(--gold) 8%, transparent);
  color: var(--gold-ink);
}
.dir-avatar {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid var(--line);
}
.dir-plot {
  opacity: 0.5;
  font-size: 0.8em;
  margin-left: auto;
}

.nav-actions {
  align-items: center;
  gap: 15px;
  margin-right: 0;
  margin-left: auto;
}
.action-icon {
  font-size: 1.5rem;
  background: none;
  border: none;
  cursor:var(--cur-paw-point, pointer);
  color: var(--ink-soft);
}
.action-icon:hover {
  color: var(--cream);
}

.status-panel > * {
  pointer-events: auto;
}
.status-logo img {
  height: 90px;
  opacity: 0.95;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.6));
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  cursor:var(--cur-paw-point, pointer);
}
.status-logo:hover img {
  transform: scale(1.05) rotate(2deg);
}
.status-text {
  display: flex;
  align-items: center;
  gap: 0;
  height: 32px;
  background: linear-gradient(
    180deg,
    rgba(20, 20, 24, 0.9),
    rgba(8, 8, 10, 0.95)
  );
  border: 1px solid rgba(197, 160, 101, 0.4);
  border-radius: 6px;
  backdrop-filter: blur(8px);
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  overflow: hidden;
}
#clock-display,#system-status {
  background: transparent;
  box-shadow: none;
  padding: 0 12px;
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 12px;
  font-family: var(--mono);
}
#system-status {
  width: 300px;
  border: none;
  border-radius: 0;
  color: #e0e0e0;
  letter-spacing: 0.5px;
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  transition:
    opacity 0.5s ease-in-out,
    transform 0.5s ease-in-out;
}

.scrolling {
  animation: marquee-scroll 15s linear infinite;
}
@keyframes marquee-scroll {
  0% {
    transform: translateX(0);
  }
  20% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.stat-highlight {
  color: var(--gold-ink);
  font-weight: 700;
  text-shadow: 0 0 8px rgba(244, 211, 94, 0.25);
  font-size: 1.1em;
}
.stat-dim {
  color: rgba(255, 255, 255, 0.2);
  margin: 0 8px;
  font-weight: 400;
}
.status-fading {
  opacity: 0 !important;
  transform: translateY(2px);
}
.status-radio {
  color: var(--gold-ink);
  font-weight: 600;
  text-shadow: 0 0 10px rgba(244, 211, 94, 0.4);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

#nav-search-input {
  width: 200px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--accent-gold);
  background: var(--glass-panel);
  color: var(--cream);
  border-radius: 6px;
  font-family: var(--mono);
  font-size: 12px;
  backdrop-filter: blur(10px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
  position: absolute;
  top: 50px;
  right: 0;
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
#nav-search-input.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.action-icon,

.compass-btn {
  display: flex;
  order: -1;
  flex-shrink: 0;
}
.action-icon:hover,
.action-icon.active {
  background: var(--bg-element);
  border-color: var(--accent-gold);
  color: var(--gold-ink);
  transform: scale(1.1);
  box-shadow: 0 0 15px rgba(197, 160, 101, 0.3);
}

.profile-image-box {
  width: 120px;
  height: 120px;
  margin: 0 auto 15px;
  border-radius: 50%;
  border: 4px solid var(--bg-element);
  box-shadow: 0 0 0 1px var(--border-color);
  overflow: hidden;
  background: #000;
}
.counter {
  position: absolute;
  top: 5px;
  right: 5px;
  background: var(--accent-red);
  color: #fff;
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 10px;
  border: 2px solid var(--bg-header);
  font-weight: bold;
}

.stats-container {
  padding: 0 20px;
  margin-bottom: 25px;
}
.progress-track {
  height: 6px;
  background: var(--bg-root);
  border-radius: 3px;
  margin-bottom: 15px;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  transition: width 1.2s cubic-bezier(0.1, 0, 0, 1);
}

.resident-info {
  flex-grow: 1;
}
.resident-stats-mini {
  margin: 8px 0;
}
.stat-mini-label {
  font-size: 0.7em;
  opacity: 0.7;
  margin-bottom: 2px;
  text-transform: uppercase;
}
.progress-track.small {
  height: 4px;
  margin-bottom: 6px;
  background: var(--well-deep);
  border-radius: 2px;
  overflow: hidden;
}

.guestbook-section {
  margin-top: 25px;
  padding-top: 15px;
  border-top: 2px solid var(--line);
  background: var(--well);
  border-radius: 8px;
  padding: 15px;
}
.guestbook-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  font-family: var(--mono);
  color: var(--gold-ink);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: bold;
}
.guestbook-list {
  max-height: 250px;
  overflow-y: auto;
  padding-right: 5px;
}
.gb-entry {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--line);
}
.gb-entry:last-child {
  border-bottom: none;
}
.gb-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid var(--accent-slate);
}
.gb-content {
  flex: 1;
  text-align: left;
}
.gb-meta {
  font-size: 0.8rem;
  color: var(--ink-soft);
  margin-bottom: 4px;
  text-transform: uppercase;
}
.gb-msg {
  font-size: 0.95rem;
  color: var(--cream);
  font-family: var(--serif);
  font-style: italic;
  line-height: 1.5;
}

#snackbar {
  visibility: hidden;
  min-width: 250px;
  background-color: var(--panel);
  border: 1px solid var(--accent-gold);
  color: var(--cream);
  text-align: center;
  border-radius: 50px;
  padding: 12px 20px;
  position: fixed;
  z-index: 10000;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%) translateY(20px);
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s ease-in-out;
  font-family: var(--mono);
  font-size: 0.9rem;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.8);
}
#snackbar.show {
  visibility: visible;
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

#radio-player {
    position: fixed;
    bottom: 90px;
    right: 20px;
    width: 260px;

    background: var(--glass-panel);
    border: 1px solid var(--accent-gold);
    border-radius: 12px;
    padding: 15px;
    z-index: 1500;
    backdrop-filter: blur(10px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);

    display: flex;
    flex-direction: column;
    gap: 10px;

    transform: translateY(20px);
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

#radio-player.active {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.radio-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
}
.radio-btn {
  background: none;
  border: 1px solid var(--line);
  color: var(--cream);
  width: 32px;
  height: 32px;
  cursor:var(--cur-paw-point, pointer);
  transition: all 0.2s;
}
.radio-btn:hover {
  border-color: var(--accent-gold);
  color: var(--gold-ink);
}
.radio-close-btn {
  position: absolute;
  top: -10px;
  right: -10px;
  background: var(--red);
  color: white;
  border: 2px solid #fff;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  cursor:var(--cur-paw-point, pointer);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  z-index: 100;
  transition: transform 0.2s ease;
}
.radio-close-btn:hover {
  transform: scale(1.1);
  background: color-mix(in srgb, var(--red) 85%, white);
}

#nav-controls {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 200;
  display: none;
  flex-direction: column;
  align-items: center;
  background: var(--glass-panel);
  padding: 10px;
  border-radius: 50%;
  border: 1px solid var(--border-color);
  backdrop-filter: blur(5px);
}

#nav-controls:not(.is-hidden) {
  display: flex !important;
}

.grid-layout {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 20px;
}

.modal-header {
    background: rgba(255, 255, 255, 0.05);
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--line);
}

.modal-body {
    padding: 20px;
    text-align: center;
}

.z-icon { font-size: 1.5rem; }
.z-label { font-weight: bold; font-size: 0.9rem; }
.z-price { color: var(--gold-ink); font-size: 0.8rem; }

#clock-display {
    font-family: var(--mono);
    font-weight: bold;
    letter-spacing: 2px;
    color: var(--gold-ink);
    text-shadow: 0 0 5px color-mix(in srgb, var(--gold) 40%, transparent);
}

.blocking-gate {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(0, 0, 0, 0.85);
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.blocking-gate.active {
    opacity: 1;
    pointer-events: auto;
}

.blocking-gate-window {
    width: 90%;
    max-width: 900px;
    height: 80vh;
    background: var(--bg-panel);
    border: 1px solid var(--accent-gold);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 0 50px rgba(0,0,0,1);
    overflow: hidden;
}

.blocking-gate-header {
    background: var(--bg-header);
    border-bottom: 1px solid var(--line);
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
}

.blocking-gate-title {
    color: var(--gold-ink);
    font-family: var(--mono);
    font-weight: bold;
    letter-spacing: 2px;
}

#legal-reaccept { z-index: var(--z-legal-block); }
.lr-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 16px 20px;
    gap: 12px;
}
.lr-blurb { margin: 0; color: var(--ink-soft); }
.lr-docs {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line);
    border-radius: 4px;
    padding: 14px 16px;
    background: var(--well);
}
.lr-doc + .lr-doc { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 18px; }
.lr-doc-title { margin: 0 0 10px; color: var(--gold-ink); }
.lr-erasure {
    border-top: 1px solid var(--line);
    padding-top: 12px;
    margin-top: 4px;
    flex-shrink: 0;
}
.lr-erasure-blurb {
    margin: 0 0 10px;
    font-size: 0.9rem;
    color: var(--ink-soft);
    line-height: 1.45;
}
.lr-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; flex-shrink: 0; }

.modal-window.tpl-legal { width: min(920px, 95vw); max-width: 920px; height: min(82vh, 82dvh); padding: 0; overflow: hidden; }
.modal-window.tpl-legal #global-modal-body { height: 100%; }
.tpl-legal-body { display: flex; height: 100%; min-height: 0; overflow: hidden; }
.tpl-legal-nav {
    width: 200px;
    background: var(--bg-header);
    border-right: 1px solid var(--line);
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    overflow-y: auto;
}
.tpl-legal-tab {
    background: transparent;
    border: none;
    color: var(--ink-soft);
    text-align: left;
    padding: 12px 20px;
    cursor: var(--cur-paw-point, pointer);
    font-family: var(--sans);
    border-left: 3px solid transparent;
    transition: all 0.2s;
}
.tpl-legal-tab:hover { background: var(--well); color: var(--cream); }
.tpl-legal-tab.active {
    background: var(--well-deep);
    color: var(--gold-ink);
    border-left-color: var(--accent-gold);
}
.tpl-legal-content {
    flex: 1;
    min-width: 0;
    padding: 40px;
    overflow-y: auto;
    background: var(--panel);
}
.tpl-legal-content h2 {
    font-family: var(--serif);
    color: var(--cream);
    font-size: 2rem;
    border-bottom: 2px solid var(--line);
    padding-bottom: 15px;
    margin-top: 0;
}
.tpl-legal-content p { color: var(--ink); line-height: 1.6; font-size: 0.95rem; }
.tpl-legal-content strong { color: var(--gold-ink); }

.modal-window.tpl-engine { width: min(760px, 95vw); max-width: 760px; max-height: min(85vh, 85dvh); border-color: var(--sanctuary-glow); box-shadow: var(--elev-3), 0 0 30px color-mix(in srgb, var(--sanctuary-glow) 18%, transparent); }
.tpl-engine-body { max-height: 100%; overflow-y: auto; }

@media(max-width:700px){
  .modal-window.tpl-legal { width: 100vw; max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100dvh; border-radius: 0; }
  .tpl-legal-nav { width: 100%; flex-direction: row; overflow-x: auto; padding: 10px 8px; border-right: none; border-bottom: 1px solid var(--line); }
  .tpl-legal-body { flex-direction: column; }
  .tpl-legal-tab { padding: 8px 12px; white-space: nowrap; font-size: .8rem; }
  .tpl-legal-content { padding: 20px; }
  .blocking-gate {
    align-items: stretch;
    justify-content: stretch;
    height: 100vh;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    padding:
      max(0px, env(safe-area-inset-top))
      max(0px, env(safe-area-inset-right))
      max(0px, env(safe-area-inset-bottom))
      max(0px, env(safe-area-inset-left));
    box-sizing: border-box;
  }
  .blocking-gate-window {
    flex-direction: column;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: 100%;
    flex: 1;
    min-height: 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
}

.legal-section{display:none}
.legal-section.active{display:block}

/* [THE OPEN ARCHIVES] The standalone /legal/<doc> pages: the same seeded
   documents as the archives modal, on a public URL with its own scaffolding.
   The document styling itself is the .legal-block family below. */
body.legal-page{background:var(--bg);margin:0}
.legal-page-main{max-width:860px;margin:0 auto;padding:28px 20px 48px}
.legal-page-kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold-ink);margin:0 0 10px}
.legal-page-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.legal-page-tab{font-size:.78rem;padding:4px 10px;border-radius:var(--r-sm);border:1px solid var(--line);color:var(--ink-soft);text-decoration:none}
.legal-page-tab.active{color:var(--cream);border-color:var(--gold);background:color-mix(in srgb, var(--gold) 10%, transparent)}
.legal-page-doc{overflow-wrap:break-word}
.legal-page-foot{margin-top:36px;padding-top:14px;border-top:1px solid var(--line);font-size:.75rem;color:var(--ink-soft)}

.legal-block{position:relative;overflow:hidden;margin-bottom:22px;padding:14px 18px;background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:4px}
.legal-block::before{content:'';position:absolute;top:0;left:0;border-style:solid;border-width:14px 14px 0 0;border-color:var(--amber) transparent transparent transparent}
.legal-block h3{margin:0 0 8px;font-size:1rem;color:var(--cream);font-family:var(--serif)}
.legal-block.warning-red{background:color-mix(in srgb, var(--red) 6%, transparent)}
.legal-block.warning-red::before{border-top-color:var(--red)}
.legal-block.warning-red h3{color:var(--red-ink)}
.legal-block.warning-gold{background:color-mix(in srgb, var(--gold) 6%, transparent)}
.legal-block.warning-gold::before{border-top-color:var(--gold)}
.legal-block.warning-gold h3{color:var(--gold-ink)}
.bullet-list{padding-left:18px;margin:8px 0}
.bullet-list li{margin-bottom:6px;color:var(--ink);font-size:.9rem;line-height:1.5}
.meta-info{font-size:.8rem;color:var(--ink-soft);font-family:var(--mono);margin-bottom:16px;letter-spacing:.5px}
.hero-title{font-family:var(--serif);font-size:1.8rem;font-weight:800;color:var(--cream);margin:0 0 6px}
.hero-subtitle{font-size:.9rem;color:var(--ink-soft);margin:0}
.sidebar-header-wrapper{padding:12px 20px 8px;border-bottom:1px solid var(--line);margin-bottom:8px}
.sidebar-label{margin:0;font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1.5px;font-family:var(--mono)}

.archives-hero {
    text-align: center;
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: 1px solid var(--accent-gold);
}

.engine-glow {
    color: var(--sanctuary-glow) !important;
    text-shadow: 0 0 12px color-mix(in srgb, var(--sanctuary-glow) 45%, transparent);
}

.legal-block.engine-highlight {
    background: color-mix(in srgb, var(--sanctuary-glow) 5%, transparent) !important;
}
.legal-block.engine-highlight::before {
    border-top-color: var(--sanctuary-glow) !important;
}

.text-cyan   { color: var(--sanctuary-amber) !important; }
.text-sanctuary { color: var(--sanctuary-amber) !important; }
.engine-readout-meta {
    font-family: var(--mono);
    color: var(--sanctuary-amber);
    font-size: 0.78rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.8;
    margin: 0 0 18px;
    padding: 6px 10px;
    background: color-mix(in srgb, var(--sanctuary-glow) 4%, transparent);
}

.engine-readout {
    margin: 0 0 22px;
}
.engine-readout .engine-readout-meta {
    margin: 0 0 4px;
}
.engine-readout-label {
    font-family: var(--mono);
    color: var(--sanctuary-glow);
    font-size: 0.72rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin: 0 0 8px;
    opacity: 0.9;
}

.engine-log {
    list-style: none;
    padding: 0;
    margin: 8px 0 12px;
}
.engine-log li {
    display: flex;
    gap: 12px;
    align-items: baseline;
    margin-bottom: 8px;
    color: var(--ink);
    font-size: 0.9rem;
    line-height: 1.4;
}
.engine-log-date {
    flex: 0 0 auto;
    font-family: var(--mono);
    font-size: 0.74rem;
    letter-spacing: 1px;
    color: var(--sanctuary-amber);
    opacity: 0.85;
    white-space: nowrap;
}

.hd-mine-title {
  margin: 18px 0 8px;
}

.hd-empty {
  color: var(--text-dim);
  font-style: italic;
  padding: 6px 2px;
}

.hd-row {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  color: var(--text-bright);
  background: var(--bg-element);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 8px;
  cursor: var(--cur-paw-point, pointer);
  transition: var(--trans-fast);
}
.hd-row:hover,
.hd-row.is-open {
  background: color-mix(in srgb, var(--bg-element) 80%, var(--accent-gold) 20%);
  border-color: var(--accent-gold);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

.hd-row-top {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-weight: 600;
}
.hd-row-ref {
  color: var(--text-dim);
  font-family: var(--font-mono);
  font-size: 0.82em;
  flex-shrink: 0;
}
.hd-row-subj {
  min-width: 0;
  overflow-wrap: anywhere;
}
.hd-row-bottom {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  color: var(--text-dim);
  font-size: 0.85em;
}

.hd-chip {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 0.78em;
  font-weight: 600;
  border: 1px solid transparent;
  white-space: nowrap;
}
.hd-chip-open {
  background: color-mix(in srgb, var(--accent-amber) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent-amber) 55%, transparent);
  color: var(--gold-ink);
}
.hd-chip-answered {
  background: color-mix(in srgb, var(--accent-gold) 22%, transparent);
  border-color: color-mix(in srgb, var(--accent-gold) 60%, transparent);
  color: var(--gold-ink);
}
.hd-chip-resolved,
.hd-chip-closed {
  background: color-mix(in srgb, var(--accent-slate) 22%, transparent);
  border-color: color-mix(in srgb, var(--accent-slate) 55%, transparent);
  color: var(--text-dim);
}

.hd-thread {
  position: relative;
  overflow: hidden;
  margin: 0 0 14px 10px;
  padding: 12px 14px;
  border-radius: 0 8px 8px 0;
  background: color-mix(in srgb, var(--bg-panel) 92%, var(--accent-gold) 8%);
}
.hd-thread::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  border-style: solid;
  border-width: 14px 14px 0 0;
  border-color: var(--accent-gold) transparent transparent transparent;
}

.hd-msg {
  padding: 8px 10px;
  margin-bottom: 8px;
  background: var(--bg-panel);
  border: 1px solid var(--border-color);
  border-left: 3px solid transparent;
  border-radius: 8px;
}
.hd-msg:last-child {
  margin-bottom: 0;
}
.hd-msg-staff {
  background: color-mix(in srgb, var(--bg-panel) 85%, var(--accent-blue) 15%);
  border-color: color-mix(in srgb, var(--accent-blue) 40%, var(--border-color));
  border-left-color: var(--accent-blue);
}
.hd-msg-mine {
  background: color-mix(in srgb, var(--bg-element) 88%, var(--accent-gold) 12%);
  border-left-color: var(--accent-gold);
}
.hd-msg-meta {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 0.82em;
  color: var(--text-dim);
}
.hd-msg p{white-space:pre-wrap;margin:4px 0 0}

.hd-reply-box {
  width: 100%;
  box-sizing: border-box;
  margin-top: 10px;
  font: inherit;
  resize: vertical;
}

.hd-thread-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.hd-thread-note {
  color: var(--text-dim);
  font-size: 0.85em;
  font-style: italic;
  margin: 8px 0 0;
}

.hd-msg-img {
  max-width: 220px;
  max-height: 220px;
  border-radius: var(--r-sm);
  margin-top: 6px;
  display: block;
  border: 1px solid color-mix(in srgb, var(--border-color) 60%, transparent);
  cursor: var(--cur-paw-point, pointer);
  transition: var(--trans-fast);
}
.hd-msg-img-btn.fs-img-preview-btn {
  display: inline-block;
  width: auto;
  height: auto;
  margin-top: 6px;
}
.hd-msg-img:hover {
  opacity: 0.9;
}

.hd-file,
.hd-reply-file {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: 6px;
  color: var(--text-dim);
  font-size: 0.85em;
}
.hd-reply-file {
  margin: 8px 0 0;
}

/* The functional-icon primitive (src/utils/icons.cjs, window._icon on the
   client): standing in for the emoji it replaces. Each icon-<name> rule
   (icons-generated.css) masks public/assets/icons/<name>.svg -- a real file,
   never inline markup, so an artist redraws it by replacing that ONE file.
   The mask (not <img>) is what lets currentColor still retint it per skin,
   same as every other icon and every line of text on the page. */
.icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  background-color: currentColor;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  vertical-align: -0.15em;
}
@media (forced-colors: active) {
  .icon {
    forced-color-adjust: none;
    background-color: CanvasText;
  }
}

/* The "open-user" quick-card modal (#tpl-profile, views/partials/modals/
   property.ejs): a compact preview of the profile hero (.ph-cover/.ph-ava
   in pages-parlour-court.css) so a citizen previewed here sees the same
   cover photo as their real profile, not just an avatar chip. Bleeds to
   .modal-window's own 24px padding rather than nesting a second .card. */
.pc-cover {
  --ph-accent: var(--gold);
  position: relative;
  margin: -24px -24px 0;
  height: 100px;
  overflow: hidden;
  background: var(--panel-2);
}
.pc-cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pc-cover-mark {
  position: absolute; right: 10px; bottom: 6px; font-size: 1.6rem; opacity: .18; line-height: 1;
}
.pc-head {
  display: flex; align-items: flex-start; gap: 12px;
  margin: -30px 0 0; padding: 0 2px;
  position: relative; z-index: 1;
}
.pc-head .pc-id { padding-top: 36px; } /* the avatar alone rides the cover; the name starts below it, legible on any photo */
.pc-ava-frame { position: relative; line-height: 0; flex: 0 0 auto; }
.pc-ava {
  width: var(--avatar-lg); height: var(--avatar-lg); border-radius: 10px; object-fit: cover;
  border: 3px solid var(--panel); background: var(--panel); flex: 0 0 auto;
  box-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.pc-lineage { width: 24px; height: 24px; right: -4px; bottom: -4px; font-size: 13px; }
.pc-id { padding-bottom: 4px; min-width: 0; }
.pc-name { margin: 0; font-size: 1.1rem; }
.pc-id .ph-roles { margin-top: 6px; }
.pc-benchmarks { margin-top: 14px; }
.pc-bio { margin-top: 10px; color: var(--ink-soft); }
.pc-goto-btn { width: 100%; margin-top: 16px; }



:where(body.card-page, body.card-page *, body.card-page *::before, body.card-page *::after,
.resident-card, .resident-card *, .resident-card *::before, .resident-card *::after,
.card-back, .card-back *, .card-back *::before, .card-back *::after) {
  box-sizing: border-box; margin: 0; padding: 0;
}

body.card-page [hidden], .resident-card [hidden], .card-back [hidden] { display: none !important; }



body.card-page {
  min-height: 100vh;
  background:
    radial-gradient(ellipse 120% 70% at 50% -10%, rgba(232,168,48,0.07), transparent 60%),
    radial-gradient(ellipse 140% 90% at 50% 115%, rgba(0,0,0,0.55), transparent 55%),
    linear-gradient(175deg, #1a1510 0%, #14100c 45%, #0e0b08 100%);
  font-family: var(--card-font);
  color: var(--sc-ink);
  -webkit-font-smoothing: antialiased;
  --btg-tag: var(--sc-muted);
}

.card-scene {
  min-height: 100vh;
  width: 100%; max-width: 560px; margin: 0 auto;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1.4rem;
  padding: 2.2rem 1rem 2.6rem;
  perspective: 1400px;
}

.card-page .btg-brand {
  margin-bottom: 0.2rem;
}
.card-page .btg-brand .gate-sign-plate {
  --sign-cap: 1.28rem;
}

.card-stage {
  position: relative;
  width: 100%; max-width: 420px;

  container-type: inline-size;
  transform-style: preserve-3d;
  transform: rotateY(calc(var(--flip, 0deg) + var(--ty, 0deg))) rotateX(var(--tx, 0deg));
  transition: transform 0.55s cubic-bezier(0.2, 0.85, 0.3, 1.05);
  cursor:var(--cur-paw-point, pointer);

  animation: card-arrive 0.7s cubic-bezier(0.2, 0.85, 0.3, 1) backwards;
  outline: none;
}
.card-stage.is-tilting { transition: transform 0.12s ease-out; }
.card-stage.is-flipped { --flip: 180deg; }
.card-stage:focus-visible { box-shadow: 0 0 0 3px var(--sc-gold); border-radius: var(--card-radius); }

@keyframes card-arrive {
  from { opacity: 0; transform: translateY(26px) rotateX(14deg); }
  to   { opacity: 1; transform: translateY(0) rotateX(0deg); }
}

@media (prefers-reduced-motion: reduce) {
  .card-stage { animation: none; transition: none; }
}

.card-print-frame { display: contents; }

.resident-card {
  width: 100%; max-width: 420px;

  aspect-ratio: 7 / 10;
  background: var(--ct-bg);
  border: 2px solid var(--ct-header);
  border-radius: var(--card-radius);
  box-shadow: 0 18px 44px rgba(0,0,0,0.55), 0 4px 12px rgba(0,0,0,0.35), inset 0 0 0 1px rgba(255,255,255,0.04);
  overflow: hidden;
  position: relative;
  color: var(--ct-ink);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.card-bg-art {
  pointer-events: none;
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  opacity: 0.05; color: var(--ct-accent); z-index: 0;
  overflow: hidden;
}
.card-bg-art svg { width: 100%; height: 100%; display: block; }

.card-sheen {
  pointer-events: none;
  position: absolute; inset: 0; z-index: 3;
  background:
    radial-gradient(circle 320px at var(--shx, 50%) var(--shy, 35%),
      rgba(255,255,255,0.22), rgba(255,255,255,0.05) 45%, transparent 70%);
  opacity: var(--sheen-o, 0);
  transition: opacity 0.35s ease;
}

.card-header {
  position: relative; z-index: 1;
  background: var(--ct-header);
  padding: 0.65rem 1.4rem;
  display: flex; align-items: baseline; justify-content: space-between;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.card-wordmark {
  color: var(--ct-wordmark);
  font-family: var(--card-font); font-size: 1.42rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
}
.card-label {
  color: var(--ct-label);
  font-family: var(--card-sans); font-size: 0.68rem;
  letter-spacing: 0.18em; text-transform: uppercase;
}

.card-identity {
  position: relative; z-index: 1;
  display: flex; gap: 1.1rem; align-items: flex-start;
  padding: 1.1rem 1.4rem 0.9rem;
  border-bottom: 1px solid var(--ct-rule);
}
.card-avatar-col { flex-shrink: 0; }
.card-avatar {
  display: block;
  width: clamp(84px, 32cqw, 130px); height: clamp(84px, 32cqw, 130px);
  border-radius: var(--card-radius);
  border: 2px solid var(--ct-rule);
  object-fit: cover; object-position: 50% var(--ct-pfp-y, 50%);
  background: var(--ct-rule);
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.card-avatar--placeholder {
  background: var(--ct-rule); color: var(--ct-muted);
  display: flex; align-items: center; justify-content: center;
}
.card-avatar--placeholder svg { width: 80px; height: 80px; }
.card-details-col {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; gap: 0.3rem; padding-top: 0.2rem;
}
.card-username {
  font-family: var(--card-font); font-size: 1.28rem; font-weight: 700;
  color: var(--ct-ink); letter-spacing: 0.01em; line-height: 1.2;
  word-break: break-word;
}
.card-character-name {
  font-family: var(--card-font); font-size: 0.92rem;
  color: var(--ct-accent); font-style: italic;
  display: flex; align-items: center; gap: 0.4rem;
}
.card-character-tag {
  font-family: var(--card-sans); font-size: 0.6rem; font-style: normal;
  text-transform: uppercase; letter-spacing: 0.1em;
  background: var(--ct-muted); color: var(--ct-bg);
  border-radius: 2px; padding: 0.05em 0.35em; opacity: 0.85;
}
.card-field {
  display: flex; gap: 0.4rem; align-items: baseline; font-size: 0.81rem;
}
.card-field-label {
  font-family: var(--card-sans); font-size: 0.65rem;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ct-muted); min-width: 58px; flex-shrink: 0; font-weight: 600;
}
.card-field-value { color: var(--ct-ink); font-family: var(--card-font); word-break: break-word; }

[data-layout="hero"] .card-identity {
  flex-direction: column; align-items: center; text-align: center;
  padding: 0 0 0.8rem; gap: 0.75rem;
}
[data-layout="hero"] .card-avatar-col { width: 100%; }
[data-layout="hero"] .card-avatar {
  width: 100%; height: clamp(160px, 62cqw, 260px);
  border-radius: 0; border-left: none; border-right: none; border-top: none;
  border-bottom: 2px solid var(--ct-rule);
  object-position: 50% var(--ct-pfp-y, 50%);
}
[data-layout="hero"] .card-avatar--placeholder { height: clamp(160px, 62cqw, 260px); border-radius: 0; }
[data-layout="hero"] .card-details-col { align-items: center; padding: 0 1.4rem; }
[data-layout="hero"] .card-field { justify-content: center; }
[data-layout="hero"] .card-labels { justify-content: center; }

[data-layout="badge"] .card-identity {
  padding: 0; gap: 0; min-height: 170px;
}
[data-layout="badge"] .card-avatar-col {
  width: 44%; flex-shrink: 0;
}
[data-layout="badge"] .card-avatar {
  width: 100%; height: 100%; min-height: clamp(120px, 45cqw, 170px);
  border-radius: 0; border: none;
  border-right: 2px solid var(--ct-rule);
  object-fit: cover; object-position: 50% var(--ct-pfp-y, 50%);
}
[data-layout="badge"] .card-avatar--placeholder {
  min-height: clamp(120px, 45cqw, 170px); border-right: 2px solid var(--ct-rule);
}
[data-layout="badge"] .card-details-col {
  padding: 1rem 1.1rem; justify-content: center;
}
[data-layout="badge"] .card-username { font-size: 1.45rem; }
[data-layout="badge"] .card-bg-art { right: -10px; bottom: 10px; opacity: 0.06; }

.card-labels {
  position: relative; z-index: 1;

  display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
  gap: 0.35rem;
  padding: 0.55rem 1.4rem;
  border-bottom: 1px solid var(--ct-rule);
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.card-labels::-webkit-scrollbar { display: none; }
.card-labels--empty { padding: 0; border-bottom: none; min-height: 0; }
.card-label-chip {
  display: inline-flex; align-items: center;
  background: var(--ct-accent); color: var(--ct-chip-text);
  font-family: var(--card-sans); font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.22em 0.65em; border-radius: 20px;
  white-space: nowrap;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}

.card-civic {
  position: relative; z-index: 1;
  padding: 0.65rem 1.4rem;
  background: rgba(0,0,0,0.03);
  border-bottom: 1px solid var(--ct-rule);
  display: flex; flex-direction: column; gap: 0.35rem;
}
.card-civic-row { display: flex; align-items: baseline; gap: 0.5rem; font-size: 0.81rem; }
.card-civic-label {
  font-family: var(--card-sans); font-size: 0.64rem;
  text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--ct-muted); min-width: 88px; flex-shrink: 0; font-weight: 600;
}
.card-civic-value { color: var(--ct-ink); font-family: var(--card-font); }
.card-mono { font-family: var(--card-mono); font-size: 0.87rem; letter-spacing: 0.1em; color: var(--ct-accent); }

.card-footer {
  position: relative; z-index: 1;
  background: var(--ct-footer);
  padding: 0.4rem 1.4rem;
  display: flex; align-items: center; gap: 0.4rem;
  font-family: var(--card-sans); font-size: 0.64rem;
  letter-spacing: 0.12em; color: var(--ct-footer-text);
  text-transform: lowercase;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.card-footer-sep { color: var(--ct-footer-text); }
.card-footer-username { margin-left: auto; }

.card-back {
  position: absolute; inset: 0; z-index: 2;
  transform: rotateY(180deg);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  background:
    radial-gradient(ellipse 100% 70% at 50% 0%, rgba(255,255,255,0.06), transparent 55%),
    var(--ct-header);
  border: 2px solid var(--ct-header);
  border-radius: var(--card-radius);
  box-shadow: 0 18px 44px rgba(0,0,0,0.55), 0 4px 12px rgba(0,0,0,0.35);
  overflow: hidden;
  display: flex;
}
.card-back-inner {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.55rem; padding: 1.4rem;
  text-align: center; width: 100%;
}
.cb-wordmark {
  font-family: var(--card-font);
  font-size: 0.85rem; font-weight: 700; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--ct-wordmark);
}
.cb-qr {
  background: #fff; border-radius: 4px;
  padding: 0.55rem; line-height: 0;
  box-shadow: 0 2px 10px rgba(0,0,0,0.35);
}
.cb-qr svg { width: 118px; height: 118px; display: block; }
.cb-paw { color: var(--ct-accent); opacity: 0.65; margin: 0.2rem 0; }
.cb-username {
  font-family: var(--card-font); font-size: 1.15rem; font-weight: 700;
  color: var(--ct-label); letter-spacing: 0.02em; word-break: break-word;
}
.cb-find {
  font-family: var(--card-mono); font-size: 0.66rem;
  color: var(--ct-footer-text); word-break: break-all;
}
.cb-footer-text {
  font-family: var(--card-sans); font-size: 0.56rem;
  letter-spacing: 0.08em;
  color: var(--ct-footer-text); margin-top: 0.5rem;
}

.card-owner-bar {
  width: 100%;
  background: var(--sc-panel); border: 1px solid var(--sc-line);
  border-radius: 8px; padding: 0.85rem 1rem;
  display: flex; flex-direction: column; gap: 0.7rem;
}
.card-size-group {
  display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
}
.card-toolbar-actions { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; justify-content: flex-end; }
.card-size-label {
  font-family: var(--card-sans); font-size: 0.64rem; text-transform: uppercase;
  letter-spacing: 0.12em; color: var(--sc-muted); white-space: nowrap;
}
.card-size-btn {
  background: var(--sc-bg); border: 2px solid transparent;
  border-radius: 6px; padding: 0.3rem 0.55rem; cursor:var(--cur-paw-point, pointer);
  font-family: var(--card-sans); font-size: 0.7rem; color: var(--sc-muted);
  text-align: center; line-height: 1.3; transition: border-color 0.15s, color 0.15s;
}
.card-size-btn small { display: block; font-size: 0.6rem; opacity: 0.7; }
.card-size-btn:hover { border-color: var(--sc-amber); color: var(--sc-ink); }
.card-size-btn.is-active { border-color: var(--sc-gold); color: var(--sc-gold); }
.card-print-btn {
  background: var(--sc-amber); color: #fff;
  border: none; border-radius: var(--card-radius);
  padding: 0.45rem 1rem; font-family: var(--card-sans);
  font-size: 0.78rem; letter-spacing: 0.06em; cursor:var(--cur-paw-point, pointer);
  transition: opacity 0.15s;
}
.card-print-btn:hover { opacity: 0.8; }
.card-edit-link {
  display: inline-block;
  background: var(--sc-bg); color: var(--sc-amber);
  border: 1px solid var(--sc-amber); border-radius: var(--card-radius);
  padding: 0.42rem 0.9rem; font-family: var(--card-sans);
  font-size: 0.78rem; text-decoration: none; letter-spacing: 0.04em;
  transition: opacity 0.15s; white-space: nowrap;
}
.card-edit-link:hover { opacity: 0.8; }

.card-visitor-cta {
  text-align: center; display: flex; flex-direction: column; gap: 0.55rem;
  align-items: center;
}
.card-visitor-cta p {
  font-family: var(--card-font); font-style: italic;
  font-size: 0.92rem; color: var(--sc-muted);
}
.card-cta-link {
  display: inline-block;
  background: var(--sc-gold); color: #1a1000;
  border-radius: var(--card-radius);
  padding: 0.55rem 1.3rem; font-family: var(--card-sans);
  font-size: 0.82rem; font-weight: 700; text-decoration: none;
  letter-spacing: 0.04em; transition: opacity 0.15s;
}
.card-cta-link:hover { opacity: 0.85; }

/* ── The reference: the sheet, its palette, its credit and the attributes.
   Sits below the badge and outside the print frame, so the badge still prints
   as a badge. Swatch colours arrive as per-index rules in the page's
   nonce-gated <style> block, built in src/routes/card.cjs. ─────────────── */
.card-ref {
  width: 100%; max-width: 640px;
  display: flex; flex-direction: column; gap: 1.1rem;
  background: var(--sc-panel); border: 1px solid var(--sc-line);
  border-radius: 8px; padding: 1.4rem;
}
.card-ref-heading {
  font-family: var(--card-font); font-size: 1.05rem; color: var(--sc-gold);
  letter-spacing: 0.03em;
}
.card-ref-subheading {
  font-family: var(--card-sans); font-size: 0.64rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--sc-amber);
  margin-bottom: 0.55rem;
}
.card-ref-figure { display: flex; flex-direction: column; gap: 0.5rem; }
.card-ref-sheet {
  display: block; width: 100%; height: auto;
  background: #0e0b08; border: 1px solid var(--sc-line);
  border-radius: 4px;
}
.card-ref-credit {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem;
  font-family: var(--card-sans); font-size: 0.76rem; color: var(--sc-ink);
}
.card-ref-credit-label {
  font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--sc-muted);
}
.card-ref-credit--none { color: var(--sc-muted); font-style: italic; }
/* The one line on this page the character's owner did not write. */
.card-ref-credit-confirmed {
  font-family: var(--card-sans); font-size: 0.62rem; font-weight: 700;
  letter-spacing: 0.06em; color: #1a1000; background: var(--sc-gold);
  border-radius: 999px; padding: 0.12rem 0.5rem;
}
.card-ref-credit-citizen, .card-ref-credit-url, .card-ref-credit-artist { color: var(--sc-gold); overflow-wrap: anywhere; }
.card-ref-credit-url { font-size: 0.72rem; }
.card-ref-credit-artist { font-weight: 700; }
.card-ref-credit-open {
  font-family: var(--card-sans); font-size: 0.62rem; font-weight: 700;
  letter-spacing: 0.06em; color: var(--sc-amber);
  border: 1px solid var(--sc-amber); border-radius: 999px; padding: 0.1rem 0.5rem;
}
.card-ref-block { display: block; }
.card-ref-palette { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; }
.card-ref-swatch-row {
  display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
  font-family: var(--card-sans); font-size: 0.78rem; color: var(--sc-ink);
}
/* The note an artist works from, on its own line under the swatch it serves,
   indented past the circle so the column of colours stays readable. */
.card-ref-swatch-notes {
  flex-basis: 100%; padding-left: calc(26px + 0.6rem);
  font-size: 0.72rem; color: var(--sc-muted); line-height: 1.4;
  overflow-wrap: anywhere;
}
.card-ref-swatch {
  width: 26px; height: 26px; flex: none; border-radius: 50%;
  border: 1px solid var(--sc-line); background: var(--sc-bg);
}
.card-ref-swatch-label { overflow-wrap: anywhere; }
.card-ref-swatch-hex {
  margin-left: auto; font-family: var(--card-mono); font-size: 0.7rem;
  color: var(--sc-muted); font-variant-numeric: tabular-nums;
}
.card-ref-attrs { display: flex; flex-direction: column; gap: 0.6rem; }
.card-ref-attr { display: flex; flex-direction: column; gap: 0.15rem; }
.card-ref-attr-key {
  font-family: var(--card-mono); font-size: 0.62rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--sc-amber);
}
.card-ref-attr-val {
  font-family: var(--card-sans); font-size: 0.82rem; color: var(--sc-ink);
  line-height: 1.5; overflow-wrap: anywhere;
}

/* The artist's own page, served standalone by src/routes/artists.cjs. It shares
   this sheet with the card because it is the other half of the same material:
   a card says who a character is, this says who drew them. */
.artist-scene { gap: 1.2rem; }
.artist-head, .artist-block {
  width: 100%; max-width: 640px;
  background: var(--sc-panel); border: 1px solid var(--sc-line);
  border-radius: 8px; padding: 1.4rem;
  display: flex; flex-direction: column; gap: 0.65rem;
}
.artist-name {
  font-family: var(--card-font); font-size: 1.5rem; color: var(--sc-gold);
  letter-spacing: 0.02em; overflow-wrap: anywhere;
}
.artist-standing-mark {
  font-family: var(--card-sans); font-size: 0.68rem; color: var(--sc-muted);
  letter-spacing: 0.04em;
}
.artist-standing-mark--claimed { color: var(--sc-amber); }
.artist-profile, .artist-commission-info {
  font-family: var(--card-sans); font-size: 0.85rem; color: var(--sc-ink);
  line-height: 1.55; overflow-wrap: anywhere; white-space: pre-wrap;
}
.artist-block-heading {
  font-family: var(--card-sans); font-size: 0.64rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--sc-amber);
}
.artist-commission-open {
  font-family: var(--card-sans); font-size: 0.76rem; font-weight: 700;
  color: #1a1000; background: var(--sc-gold);
  border-radius: 999px; padding: 0.16rem 0.62rem;
}
.artist-commission-closed {
  font-family: var(--card-sans); font-size: 0.76rem; color: var(--sc-muted);
  font-style: italic;
}
.artist-links { list-style: none; display: flex; flex-direction: column; gap: 0.35rem; }
.artist-link {
  font-family: var(--card-sans); font-size: 0.78rem;
  color: var(--sc-gold); overflow-wrap: anywhere;
}
.artist-works-none {
  font-family: var(--card-sans); font-size: 0.82rem; color: var(--sc-muted);
  font-style: italic;
}
.artist-works-grid {
  list-style: none; display: grid; gap: 0.9rem;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
.artist-work { display: flex; flex-direction: column; gap: 0.35rem; }
.artist-work-art {
  display: block; width: 100%; height: auto;
  background: #0e0b08; border: 1px solid var(--sc-line); border-radius: 4px;
}
.artist-work-line {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem;
  font-family: var(--card-sans); font-size: 0.74rem; color: var(--sc-ink);
}
.artist-work-link { color: var(--sc-gold); overflow-wrap: anywhere; }
.artist-work-owner { color: var(--sc-muted); font-size: 0.66rem; }
.artist-work-confirmed {
  font-family: var(--card-sans); font-size: 0.58rem; font-weight: 700;
  letter-spacing: 0.06em; color: #1a1000; background: var(--sc-gold);
  border-radius: 999px; padding: 0.1rem 0.45rem;
}

.card-scene--private { justify-content: center; }
.card-private-slip {
  width: 100%; max-width: 380px;
  background: var(--sc-panel); border: 1px solid var(--sc-line);
  border-radius: 8px; padding: 2.2rem 1.8rem;
  display: flex; flex-direction: column; align-items: center; gap: 0.8rem;
  text-align: center;
}
.card-private-slip h1 {
  font-family: var(--card-font); font-size: 1.25rem; color: var(--sc-ink);
}
.card-private-slip p {
  font-family: var(--card-sans); font-size: 0.82rem; color: var(--sc-muted);
  line-height: 1.5;
}
.card-private-footnote {
  font-family: var(--card-sans); font-size: 0.6rem;
  letter-spacing: 0.1em; color: var(--sc-muted); opacity: 0.6;
}

.card-no-screen { display: none; }

@media print {
  @page { size: A4 portrait; margin: 0; }

  body.card-page {
    background: #fff; padding: 0; margin: 0;
    display: block; width: 210mm; min-height: 297mm; color: #000;
  }

  .card-scene {
    max-width: none; gap: 0; width: 100%; min-height: 0;
    display: flex; flex-direction: column; align-items: center;
    padding: 22mm 0 0; perspective: none;
  }

  .card-stage {
    transform: none !important; transition: none; animation: none;
    max-width: none; width: auto; cursor: auto;
  }
  .card-sheen { display: none !important; }

  .card-print-frame {
    display: block;
    position: relative;
    width: 76mm; height: 108mm;
    margin: 0 auto;
    outline: 0.5pt dashed #999;
    outline-offset: 3mm;
  }

  .card-print-frame[data-print-size="id-pass"] { width: 54mm; height: 86mm; }
  .card-print-frame[data-print-size="id-pass"] .resident-card { width: 54mm; height: 86mm; }

  .card-print-frame[data-print-size="a6"] { width: 105mm; height: 148mm; }
  .card-print-frame[data-print-size="a6"] .resident-card { width: 105mm; height: 148mm; }

  .card-print-frame::after {
    content: 'cut here';
    position: absolute;
    top: calc(100% + 4.5mm);
    left: 50%; transform: translateX(-50%);
    font-family: system-ui, sans-serif; font-size: 7pt;
    color: #aaa; letter-spacing: 0.18em; white-space: nowrap;
  }

  .card-print-frame::before {
    content: '';
    position: absolute;
    left: -5mm; top: -5mm;
    width: 5mm; height: 5mm;
    border-top: 0.5pt solid #888; border-left: 0.5pt solid #888;
  }

  .resident-card {
    max-width: 100%; width: 76mm; height: 108mm;
    box-shadow: none;
    border: 1.2pt solid var(--ct-header, #1a2a4a);
    border-radius: 2pt;
    page-break-inside: avoid; break-inside: avoid;
    overflow: hidden;
    display: flex; flex-direction: column;
    backface-visibility: visible;
  }

  .card-identity { flex: 1 1 auto; }

  .card-wordmark { font-size: 1.1rem; }
  .card-username { font-size: 1.05rem; }

  [data-layout="hero"] .card-avatar { width: 100%; height: 38mm; object-fit: cover; object-position: center top; }
  .card-print-frame[data-print-size="id-pass"] [data-layout="hero"] .card-avatar { height: 28mm; }
  .card-print-frame[data-print-size="a6"] [data-layout="hero"] .card-avatar { height: 55mm; }

  .card-header, .card-footer, .card-label-chip {
    -webkit-print-color-adjust: exact; print-color-adjust: exact; color-adjust: exact;
  }
  .card-avatar, .card-bg-art {
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .card-bg-art { opacity: 0.07; }

  .card-labels { flex-wrap: wrap; overflow: visible; }

  .card-print-frame { page-break-after: always; break-after: always; }
  .card-back {
    position: static; transform: none;
    width: 76mm; height: 108mm;
    display: flex; align-items: stretch;
    background: var(--ct-header, #1a2a4a);
    border: 1.2pt solid var(--ct-header, #1a2a4a);
    border-radius: 2pt;
    margin: 22mm auto 0;
    box-shadow: none;
    page-break-inside: avoid; break-inside: avoid;
    backface-visibility: visible;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .card-back-inner { gap: 2mm; padding: 5mm; }
  .cb-wordmark { font-size: 8.5pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cb-qr { padding: 2mm; box-shadow: none; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cb-qr svg { width: 24mm; height: 24mm; }
  .cb-paw { margin: 1mm 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cb-username { font-size: 12pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cb-find { font-size: 6pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cb-footer-text { font-size: 5pt; margin-top: 2mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  .card-no-print { display: none !important; }
}

/* [THE CHARACTER SHEET] The permalink page at /card/<username>/<slug>:
   reference material only, none of the resident card. The reference block
   reuses the .card-ref family above; these are the sheet page's own frame,
   its QR, its backstory and its gallery grid. */
.character-scene { max-width: 1040px; }
.chs-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap; margin-bottom: 1.4rem; }
.chs-name { font-family: var(--serif, serif); font-size: 2rem; margin: 0 0 0.3rem; color: var(--ct-ink); }
.chs-meta { display: flex; gap: 0.8rem; flex-wrap: wrap; margin: 0 0 0.5rem; color: var(--ct-muted); font-size: 0.95rem; }
.chs-pronouns { font-style: italic; }
.chs-owner { margin: 0; font-size: 0.85rem; color: var(--ct-muted); }
.chs-owner-link { color: var(--ct-accent); text-decoration: none; }
.chs-owner-link:hover { text-decoration: underline; }
.chs-qr { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 0.35rem; }
.chs-qr svg { width: 108px; height: 108px; background: #ffffff; padding: 6px; border-radius: 6px; border: 1px solid var(--ct-rule); }
.chs-qr-caption { font-size: 0.7rem; color: var(--ct-muted); max-width: 150px; text-align: center; }
.chs-ref { margin-top: 0; max-width: none; }
.chs-ref-split {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(220px, 0.85fr);
  gap: 1.2rem; align-items: start;
}
.chs-ref-split--single { grid-template-columns: 1fr; }
.chs-ref-sheet-col, .chs-ref-glance-col { min-width: 0; }
.chs-ref-glance-col { display: flex; flex-direction: column; gap: 1.1rem; }
.chs-story { margin: 1.6rem 0; }
.chs-story-para { color: var(--ct-ink); font-size: 0.95rem; line-height: 1.65; margin: 0 0 0.8rem; overflow-wrap: break-word; }
.chs-gallery { margin: 1.6rem 0 0; }
.chs-gallery-none { color: var(--ct-muted); font-size: 0.9rem; }
.chs-gallery-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.chs-gal-figure { margin: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.chs-gal-img { width: 100%; height: auto; border-radius: 8px; border: 1px solid var(--ct-rule); background: #ffffff; }
.chs-gal-caption { display: flex; flex-direction: column; gap: 0.15rem; font-size: 0.8rem; color: var(--ct-muted); }
.chs-gal-title { color: var(--ct-ink); }
.chs-gal-credit { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: baseline; }
.chs-report { margin-top: 1.4rem; font-size: 0.8rem; }
.chs-report-link { color: var(--ct-muted); }
.chs-foot { margin-top: 2.2rem; padding-top: 0.9rem; border-top: 1px solid var(--ct-rule); font-size: 0.75rem; color: var(--ct-muted); }

@media (max-width: 760px) {
  .chs-ref-split { grid-template-columns: 1fr; }
}

.set-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.set-row:last-child{border-bottom:none}
.set-info{min-width:0}
.set-label{display:block;font-size:.92rem;color:var(--ink);font-weight:600;margin-bottom:2px}
.set-desc{display:block;font-size:.78rem;color:var(--ink-soft);line-height:1.45}

.pref-toggle{position:relative;width:46px;height:26px;flex:0 0 auto;border-radius:13px;border:1px solid var(--line);background:rgba(0,0,0,.35);cursor:var(--cur-paw-point, pointer);transition:.18s;padding:0}
.pref-toggle::before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--ink-soft);transition:.18s}
.pref-toggle.is-on{background:var(--gold-soft);border-color:var(--gold)}
.pref-toggle.is-on::before{left:22px;background:var(--gold)}
.pref-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.seg{display:inline-flex;flex:0 0 auto;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:rgba(0,0,0,.25)}
.seg-btn{background:transparent;border:none;border-right:1px solid var(--line);color:var(--ink-soft);font-family:var(--mono);font-size:.76rem;padding:7px 12px;cursor:var(--cur-paw-point, pointer);transition:.15s}
.seg-btn:last-child{border-right:none}
.seg-btn:hover{color:var(--ink);background:rgba(232,168,48,.08)}
.seg-btn.seg-on{background:color-mix(in srgb, var(--gold) 14%, var(--panel));color:var(--ink);font-weight:700;box-shadow:inset 0 -2px 0 var(--gold)}
.seg-btn:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.seg-btn.is-honour-lock{opacity:.42;cursor:var(--cur-paw-nope, not-allowed)}
.seg-btn.is-honour-lock:hover{color:var(--ink-soft);background:transparent}
.seg-flag{font-size:1.05em;line-height:1;font-family:initial}
.seg-btn .lang-flag{display:inline-block;width:20px;height:14px;object-fit:cover;vertical-align:middle;border:1px solid rgba(0,0,0,.25);border-radius:2px;margin-right:2px}

.seg.page-tabs{display:flex;width:100%;margin-bottom:16px}
.seg.page-tabs .seg-btn{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:5px;text-align:center;min-width:max-content;padding:9px 12px;font-size:.78rem}
@media(max-width:768px){
  .seg.page-tabs{flex-wrap:wrap}
  .seg.page-tabs .seg-btn{flex:1 1 30%;border-top:1px solid var(--line);margin-top:-1px}
  .seg.page-tabs .seg-btn:first-child:nth-last-child(4),.seg.page-tabs .seg-btn:first-child:nth-last-child(4)~.seg-btn{flex-basis:45%}
}

.seg--wrap{flex:1 1 auto;width:100%;gap:6px;border:none;border-radius:0;overflow:visible;background:none}
.seg--wrap .seg-btn{border:1px solid var(--line);border-right:1px solid var(--line);border-radius:var(--r-sm);background:rgba(0,0,0,.25);min-height:34px;display:inline-flex;align-items:center}
.seg--wrap .seg-btn:last-child{border-right:1px solid var(--line)}
.seg--wrap .seg-btn.seg-on{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 14%, var(--panel));color:var(--ink);box-shadow:inset 0 -2px 0 var(--gold)}
.seg--wrap .seg-btn.seg-btn--text{min-width:auto;padding:0 12px;font-size:.78rem;gap:4px}

.region-more-modal .modal-window{max-width:420px}
.region-more-sub{margin:0 0 12px;font-size:.82rem;color:var(--ink-soft)}
.region-more-search{width:100%;margin-bottom:10px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(0,0,0,.25);color:inherit;font:inherit}
.region-more-search:focus{outline:none;border-color:var(--gold)}
.region-more-list{display:flex;flex-direction:column;gap:4px;max-height:min(50vh,320px);overflow-y:auto;margin:0 -4px;padding:0 4px}
.region-more-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(0,0,0,.25);color:inherit;font:inherit;text-align:left;cursor:var(--cur-paw-point, pointer)}
.region-more-item:hover,.region-more-item:focus-visible{border-color:var(--gold)}
.region-more-item--on{border-color:var(--gold);background:rgba(232,168,48,.08)}
.region-more-item .lang-flag{width:28px;height:19px;flex-shrink:0}
.region-more-lbl{flex:1;min-width:0;font-size:.84rem}
.region-more-sub-lbl{font-size:.72rem;color:var(--ink-soft);font-weight:400}
.region-more-empty{margin:8px 0;font-size:.82rem;color:var(--ink-soft);text-align:center}

.set-row--stack{flex-direction:column;align-items:stretch;gap:8px}

.set-reset-row{margin-top:14px;display:flex;justify-content:flex-end}
.set-note{font-size:.76rem;color:var(--ink-soft);margin:8px 0 0;line-height:1.45}

html.fs-reduce-motion *,html.fs-reduce-motion *::before,html.fs-reduce-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
html.fs-text-sm{font-size:14px}
html.fs-text-lg{font-size:18px}
html.fs-contrast{--ink:#fff8ee;--ink-soft:#d2c4ad;--line:#6f5d40}
html.fs-contrast .card{border-color:var(--gold-soft)}
html.fs-compact .card{padding:11px 14px;margin-bottom:10px}
html.fs-compact .set-row{padding:7px 0}

/* DEFAULT (Ember Workshop): the town's out-of-the-box look and the pinned default
   skin. Warm cocoa-black ground with a single terracotta accent (--gold repointed
   from base's amber to firelit terracotta), so every var(--gold)/var(--gold-soft)
   consumer site-wide picks up the ember, the makers-and-craft warmth. The red fox
   skin is left untouched as its own separate choice. */
.is-hidden, .hidden, .pk-hidden{
  display: none !important;
}.search-popup{position:fixed;top:calc(var(--header-h) + 52px);right:10px;background:var(--panel);border:1px solid var(--amber);border-radius:var(--radius);padding:14px;z-index:500;display:none;width:320px;box-shadow:var(--shadow)}.search-popup.open{display:block}.search-popup input{width:100%}.search-filters{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}.search-filter{font-size:.8rem;padding:3px 10px;border:1px solid var(--line);border-radius:12px;cursor:var(--cur-paw-point, pointer);color:var(--ink-soft);background:var(--panel-2);transition:.12s}.search-filter.on{color:var(--gold-ink);border-color:var(--amber)}.search-results{margin-top:10px;max-height:300px;overflow-y:auto}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(4px);z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:20px}.modal-overlay.open{display:flex}.modal-window{background:var(--panel);border:1px solid var(--amber);border-radius:var(--radius);padding:24px;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;overflow-x:hidden;box-shadow:var(--shadow);position:relative}#global-modal-body{display:flow-root}.modal-window.mkt-modal{width:min(760px,94vw);max-width:none;background:var(--panel);border:1px solid var(--gold-soft);border-radius:12px;padding:0;max-height:92vh;animation:mktModalIn .25s ease}.modal-window.mkt-modal-detail{width:min(960px,94vw)}.modal-window.mkt-modal-safety{width:min(620px,94vw)}.modal-window.mkt-modal-seller{width:min(760px,94vw);max-height:88vh}.modal-window.gallery-viewer-modal{max-width:960px;width:95vw;max-height:95vh;padding:0;overflow:hidden;background:transparent;border:none;box-shadow:none;border-radius:0}.modal-window.compass-modal{width:min(920px,94vw);max-width:none}.compass-grid{columns:3;column-gap:36px;margin-top:10px}@media(max-width:900px){.compass-grid{columns:2}}@media(max-width:600px){.compass-grid{columns:1}}.compass-grp{break-inside:avoid;margin-bottom:26px}.compass-grp-label{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);border-bottom:1px solid var(--line-soft);padding-bottom:7px;margin-bottom:8px}.compass-grp-label .icon{font-size:1.15em}.compass-link{display:flex;align-items:center;gap:11px;padding:7px 9px;border-radius:7px;font-size:.87rem;line-height:1.3;color:var(--ink);transition:background var(--t-fast) ease,color var(--t-fast) ease}.compass-link .icon{color:var(--ink-soft);transition:color var(--t-fast) ease}.compass-link:hover{background:color-mix(in srgb,var(--gold) 10%,transparent);color:var(--gold-ink)}.compass-link:hover .icon{color:var(--gold-ink)}.compass-link.active{color:var(--gold-ink);background:color-mix(in srgb,var(--gold) 7%,transparent)}.compass-link.active .icon{color:var(--gold-ink)}.modal-close{position:absolute;top:15px;right:15px;z-index:10;cursor:var(--cur-paw-point, pointer);background:none;border:1px solid var(--line);color:var(--ink);width:32px;height:32px;border-radius:50%;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .15s}.modal-close:hover{background:var(--rose);border-color:var(--rose);color:#fff}#app-root{display:flex;flex-direction:column;height:100vh;height:100svh;overflow:hidden}.main-area{display:grid;grid-template-columns:230px 52px 1fr;flex:1;min-height:0;transition:grid-template-columns .2s}.main-area.sidebar-closed{grid-template-columns:0px 52px 1fr}.sidebar{background:linear-gradient(180deg,var(--panel) 0%,var(--bg) 100%);border-right:1px solid var(--line);padding:12px 0;overflow-y:auto;overflow-x:hidden;transition:all .2s;min-height:0;scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{display:none;width:0;height:0}.main-area.sidebar-closed .sidebar{width:0;padding:0;border-right:0;overflow:hidden}.main-area.sidebar-closed .sidebar *{display:none}.stats-block{margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--well)}.bar-track{background:var(--well-deep);margin-bottom:8px}.bar-fill{box-shadow:0 0 8px currentColor}.sb-foot{margin-top:14px;padding-top:10px;border-top:1px solid var(--line);text-align:center;font-size:.75rem;color:var(--ink-soft);font-family:var(--mono);letter-spacing:1px;opacity:.7}.sb-foot .gp-social-links{margin:8px 0 0}.sb-foot .gp-cypher{margin:6px auto 0;font-size:.65rem;padding:5px 11px;letter-spacing:1.5px}.canvas{--canvas-gutter:32px;padding:28px var(--canvas-gutter);overflow-y:auto;scrollbar-gutter:stable;background:var(--bg);min-height:0;height:100%}.page{position:relative;display:none;animation:fade .22s;background:color-mix(in srgb, var(--panel) 55%, var(--bg) 45%);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 10px rgba(0,0,0,.25);padding:18px 22px;max-width:var(--content-max,1120px);margin-inline:auto}.page.active{display:block}.page.page-fitted{background:none;border:0;box-shadow:none;border-radius:0;padding:0;max-width:none;margin-inline:0}.page.page-fitted.active{display:flex;flex-direction:column;height:100%;min-height:0}.page-title{font-family:var(--serif);font-size:2rem;font-weight:800;color:var(--ink);margin:0 0 4px}.page-sub{color:var(--ink-soft);font-size:.8rem;font-family:var(--mono);letter-spacing:.5px;margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid var(--line)}.page-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--line)}.page-head .page-title{margin:0;font-size:1.4rem}.page-head .page-sub{margin:0;padding:0;border:none}.page-back-btn{flex-shrink:0;align-self:center;padding:4px 11px;font-size:.85rem;line-height:1.2}.page-back-row{margin-bottom:14px}.page-back-row.page-runin{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line)}.page-back-row.page-runin .page-title{margin:0;flex:1;min-width:0;font-size:1.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;margin-bottom:16px;
  box-shadow:0 2px 10px rgba(0,0,0,.25);transition:border-color .15s}.card:hover{border-color:rgba(200,120,48,.25)}.card>h3:first-child{margin-top:0;color:var(--gold-ink);font-family:var(--serif);font-weight:700;font-size:1.2rem;letter-spacing:.3px}.card h4{color:var(--ink);font-weight:700;margin:14px 0 8px}.grid-2{grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-template-columns:repeat(3,1fr)}@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:20px}.stat-tile{background:linear-gradient(145deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:var(--radius);padding:16px 12px;text-align:center;transition:.15s}.stat-tile:hover{border-color:var(--amber)}.stat-tile .num{font-family:var(--serif);font-size:1.7rem;font-weight:800;color:var(--gold-ink);display:block}.stat-tile .label{font-size:.75rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1.5px;margin-top:5px;font-family:var(--mono)}.btn{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);padding:8px 18px;border-radius:8px;
  font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:.15s}.btn:hover{background:var(--panel);border-color:var(--amber);color:var(--cream);transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.3)}.btn.primary{border-color:var(--gold);color:var(--gold-ink);background:color-mix(in srgb, var(--gold) 8%, transparent)}.btn.primary:hover{background:color-mix(in srgb, var(--gold) 16%, transparent);color:var(--gold-ink);box-shadow:0 3px 14px color-mix(in srgb, var(--gold) 35%, transparent)}.btn.danger{border-color:color-mix(in srgb, var(--red) 40%, transparent);color:var(--red-ink)}.btn.danger:hover{background:var(--red);color:#fff;border-color:var(--red)}.btn.sm{padding:5px 12px;font-size:.8rem}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],textarea,select{
  width:100%;background:var(--well);border:1px solid var(--line);color:var(--ink);
  padding:10px 12px;border-radius:8px;font-family:inherit;font-size:.88rem;transition:.15s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--amber);background-color:var(--well-deep);box-shadow:0 0 0 3px color-mix(in srgb, var(--amber) 12%, transparent)}.field{margin-bottom:14px}.field label{display:block;font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1.3px;font-family:var(--mono);margin-bottom:5px}.site-header{
  position: relative;
  height: var(--header-h);
  overflow: hidden;
  transition: height .3s ease;
  background:
    color-mix(in srgb, var(--bg-header) 94%, #000);
  border-bottom: 2px solid var(--amber);
}.site-header.collapsed{height:0;border-bottom:0}.site-header::before,.site-header::after{content:"";position:absolute;inset:0;pointer-events:none}.logo-seal{position:absolute;top:14px;right:14px;z-index:3;padding:0;background:none;border:none;border-radius:0;box-shadow:none}.logo-seal .hub-sign--compact{
  --sign-tilt:-.25deg;
  transform:rotate(var(--sign-tilt));
  filter:drop-shadow(0 5px 12px rgba(0,0,0,.48)) drop-shadow(0 2px 4px rgba(0,0,0,.32));
  transition:transform .18s cubic-bezier(.16,1,.3,1),filter .18s ease}.logo-seal .hub-sign--compact .gate-sign-plate{--sign-cap:1.18rem;animation:hubPlateSettle .5s cubic-bezier(.16,1,.3,1) .35s both}.logo-seal:hover .hub-sign--compact{
  transform:translateY(-1px) rotate(var(--sign-tilt));
  filter:drop-shadow(0 7px 16px rgba(0,0,0,.54)) drop-shadow(0 3px 6px rgba(0,0,0,.36))}.logo-seal .hub-sign-tag--header{
  margin:0;padding:0;font-size:.56rem;letter-spacing:1.8px;
  color:color-mix(in srgb, var(--ink) 58%, transparent);text-align:center;white-space:nowrap}@media(min-width:1200px){.logo-seal .hub-sign--compact .gate-sign-plate{--sign-cap:1.28rem}}@media(prefers-reduced-motion:reduce){.logo-seal .hub-sign--compact{transform:none;transition:none}.logo-seal:hover .hub-sign--compact{transform:none;filter:drop-shadow(0 5px 12px rgba(0,0,0,.48)) drop-shadow(0 2px 4px rgba(0,0,0,.32))}.logo-seal .hub-sign--compact .gate-sign-plate{animation:none}}.nav-wrapper{ position: relative; }.status-panel{
  position: absolute;
  top: 0;
  right: 5px;
  transform: translateY(-100%);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 5px 16px;
  background: linear-gradient(180deg, var(--bg-header) 0%, var(--panel) 100%);
  border: 1px solid var(--glass-border);
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  font-family: var(--mono);
  font-size: 0.73rem;
  white-space: nowrap;
  color: var(--ink-soft);
  letter-spacing: 0.03em;
  z-index: 99;
  box-shadow: -3px -6px 18px rgba(0,0,0,0.4), inset 0 1px 0 color-mix(in srgb, var(--gold) 6%, transparent);
}.status-clock{color:var(--gold-ink);font-weight:700;letter-spacing:0.08em;text-shadow:0 0 8px color-mix(in srgb, var(--gold) 30%, transparent)}.status-panel{font-variant-numeric:tabular-nums}.status-clock{display:inline-block;min-width:5ch}.status-day{display:inline-block;min-width:15ch}.status-divider{color:var(--line);user-select:none}.status-item{color:var(--ink-soft);opacity:.75;display:flex;align-items:center;gap:4px;transition:color .2s,opacity .2s}.status-item:hover{color:var(--ink);opacity:1}.status-item .dot{width:5px;height:5px;border-radius:50%;background:var(--ok);box-shadow:0 0 5px var(--ok)}.status-item-btn{background:transparent;border:0;padding:0;font:inherit;cursor:var(--cur-paw-point, pointer);color:inherit}.status-item-btn:hover{color:var(--gold-ink)}.status-item-btn:focus{outline:1px dotted var(--accent-gold);outline-offset:2px}.main-nav{height:52px;background:linear-gradient(180deg,var(--panel),var(--bg-header));border-bottom:1px solid var(--line);padding:5px;gap:5px;position:sticky;top:0;z-index:100;
  box-shadow:0 2px 12px rgba(0,0,0,.4)}.main-nav,.nav-circle{
  display:flex;align-items:center}.nav-circle{width:36px;height:36px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);
  box-shadow:inset 0 2px 5px rgba(0,0,0,.55),inset 0 -1px 0 rgba(255,255,255,.06),0 1px 0 rgba(255,255,255,.03);
  color:var(--ink-soft);justify-content:center;font-size:1rem;transition:.15s;position:relative}.nav-circle .ico{width:18px;height:18px;flex:0 0 auto}.nav-circle:hover{background:var(--panel-2);border-color:var(--amber);color:var(--ink);transform:translateY(-1px)}.nav-circle.active{background:var(--panel-2);border-color:var(--gold);color:var(--gold-ink);box-shadow:0 0 8px color-mix(in srgb, var(--gold) 20%, transparent)}.nav-circle.red{border-color:color-mix(in srgb, var(--red) 35%, transparent);color:var(--red-ink)}.nav-circle.red:hover{background:var(--red);color:#fff}.nav-actions{display:flex;gap:5px;padding-left:10px;border-left:1px solid var(--line)}.of-rail{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  gap: 6px;
  width: 52px;
  padding: 12px 6px 12px 0;
  background: transparent;
  border: 0;
  flex-shrink: 0;
  align-self: stretch;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  z-index: 5;
}.of-rail::-webkit-scrollbar{
  display: none;
  width: 0;
  height: 0;
}.of-rail-btn{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  min-width: 46px;
  min-height: 46px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-left: 0;
  border-radius: 0 10px 10px 0;
  background: var(--panel);
  box-shadow:
    2px 2px 0 color-mix(in srgb, var(--bg) 45%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 35%, transparent);
  cursor: var(--cur-paw-point, pointer);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  color: var(--ink);
  font-size: 1.2rem;
  line-height: 1;
}.of-rail-btn img{
  width: 26px;
  height: 26px;
  pointer-events: none;
}.of-rail-btn:hover,
.of-rail-btn:focus-visible{
  background: color-mix(in srgb, var(--gold-soft) 35%, var(--panel));
  border-color: var(--gold);
  outline: none;
  transform: translateX(2px);
}.of-rail-btn:active{
  transform: translateX(0);
}.of-rail-btn.active{
  background: color-mix(in srgb, var(--gold-soft) 45%, var(--panel));
  border-color: var(--gold);
  color: var(--gold-ink);
  box-shadow: 0 0 8px color-mix(in srgb, var(--gold) 22%, transparent);
}.of-rail-badge{
  position: absolute;
  top: 1px;
  right: 1px;
  min-width: 15px;
  height: 15px;
  padding: 0 4px;
  border-radius: 8px;
  background: var(--red-soft, #c45a48);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 15px;
  text-align: center;
  pointer-events: none;
}.of-rail-badge:empty{ display: none; }.main-area.sidebar-closed #btn-sidebar .of-rail-chevron--in{ display: none; }.main-area.sidebar-closed #btn-sidebar .of-rail-chevron--out{ display: inline; }.sidebar-scrim{ display: none; }@media (min-width: 769px){.main-area > .sidebar{ order: 1; }.main-area > .of-rail{ order: 2; }.main-area > .canvas{ order: 3; }.main-area{
    grid-template-columns: 230px 52px 1fr;
  }.main-area.sidebar-closed{
    grid-template-columns: 0 52px 1fr;
  }}@media (max-width: 768px){.main-area,
  .main-area.sidebar-closed{
    position: relative;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto;
  }.main-area > .canvas{ grid-column: 1; grid-row: 1; min-width: 0; }.main-area > .of-rail{
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-around;
    align-items: center;
    gap: 4px;
    border: 0;
    padding: 8px 6px calc(8px + env(safe-area-inset-bottom, 0px));
    overflow: hidden;
  }.of-rail-btn{
    border-radius: 12px;
    border: 1px solid var(--line);
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    box-shadow: 0 2px 0 color-mix(in srgb, var(--bg) 35%, transparent);
  }.of-rail-btn:hover,
  .of-rail-btn:focus-visible{ transform: translateY(-2px); }.main-area > .sidebar{
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    width: min(82vw, 300px);
    max-width: 100%;
    z-index: var(--z-dropdown);
    transform: translateX(-100%);
    transition: transform var(--t-med) var(--ease-out);
    box-shadow: var(--elev-3);
    border-right: 1px solid var(--glass-hairline);
    will-change: transform;
  }.main-area:not(.sidebar-closed) > .sidebar{ transform: translateX(0); }.main-area.sidebar-closed > .sidebar{
    width: min(82vw, 300px);
    padding: 12px 0;
    border-right: 1px solid var(--glass-hairline);
  }.main-area:not(.sidebar-closed) > .sidebar-scrim{
    display: block;
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(0, 0, 0, .45);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: calc(var(--z-dropdown) - 1);
    cursor: var(--cur-paw-point, pointer);
    transform: none;
  }}
/* A drawer needs its controller. Without it, retain links and content in one
   scrolling flow, including sites that enable native mobile scrolling. */
.main-area:not(.sidebar-ready) [data-action="toggle-sidebar"]{display:none}
@media (max-width:768px){
  .main-area:not(.sidebar-ready){display:block;overflow:auto}
  .main-area:not(.sidebar-ready) > .of-rail{position:static;flex-wrap:wrap;overflow:visible;transform:none}
  .main-area:not(.sidebar-ready) > .sidebar{position:static;width:100%;max-width:100%;height:auto;overflow:visible;transform:none;transition:none;box-shadow:none;border-right:0;will-change:auto}
  .main-area:not(.sidebar-ready) > .canvas{height:auto;overflow:visible}
}
.pd-card{
  border: 1px solid var(--glass-hairline);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, rgba(245,237,216,.05), rgba(245,237,216,0) 46%), var(--panel-2);
  box-shadow: var(--elev-1);
  overflow: visible;
  margin: 0 10px;
}.pd-card.pd-id{
  margin: 0;
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  overflow: visible;
}.pd-id{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: visible;
}.pd-ava{
  position: relative;
  width: 175px;
  max-width: calc(100% - 24px);
  height: 175px;
  aspect-ratio: 1 / 1;
  flex: 0 0 auto;
  margin: 14px auto 10px;
  padding: 0;
  overflow: visible;
  background: transparent;
}.pd-ava > img,
.pd-ava #profile-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 32px;
  border: 3px solid var(--panel);
  box-shadow: 0 0 0 1px var(--gold-soft), var(--elev-2);
  background: var(--panel-2);
}.pd-ava .pfp-fallback{
  position: absolute;
  inset: 0;
  border-radius: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  background: var(--panel-2);
  border: 3px solid var(--panel);
  box-shadow: 0 0 0 1px var(--gold-soft), var(--elev-2);
  pointer-events: none;
}.pd-ava .pfp-fallback.fs-layout-cb4589{ display: none; }.pd-who{
  min-width: 0;
  width: 100%;
  overflow: visible;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
  padding: 12px 10px;
}.pd-follow{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  padding: 2px 4px 0;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ink-soft);
}.sb-foot{ margin-top: auto; border-top: 1px solid var(--line-soft); padding: 10px 8px; }.fs-empty{
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; gap: 8px; padding: 26px 16px 22px;
  border: 1px dashed color-mix(in srgb, var(--gold) 32%, transparent); border-radius: 12px;
  background: color-mix(in srgb, var(--gold) 4%, transparent);
}.fs-empty-icon{ font-size: 2.1rem; line-height: 1; opacity: .85; }.fs-empty-title{ margin: 0; font-weight: 700; color: var(--ink); font-size: .95rem; letter-spacing: .2px; }.fs-empty-sub{ margin: 0; color: var(--ink-soft); font-size: .8rem; max-width: 400px; line-height: 1.5; }.fs-empty-cta{ margin-top: 6px; }.grid-2 .fs-empty, .grid-3 .fs-empty, .mkt-grid .fs-empty, .gallery-grid .fs-empty{ grid-column: 1 / -1; }.fs-empty--quiet{ border: none; background: none; padding: 22px 12px 18px; }.soul-pager{ display:flex; align-items:center; justify-content:center; gap:12px; margin-top:14px; padding:10px 0 8px; }.soul-page-label{ color:var(--ink-soft); font-size:.78rem; font-family:var(--mono); }.character-ref-dropzone{
  margin-top: 8px; min-height: 120px; padding: 14px;
  border: 1.5px dashed color-mix(in srgb, var(--gold) 35%, transparent); border-radius: var(--r-md);
  background: color-mix(in srgb, var(--gold) 4%, transparent); cursor: var(--cur-paw-point, pointer);
  transition: .15s; text-align: center;
}.character-ref-dropzone:hover, .character-ref-dropzone:focus-visible{
  border-color: var(--gold); background: color-mix(in srgb, var(--gold) 8%, transparent);
}.character-ref-dropzone.has-file{ padding: 8px; border-style: solid; }.character-ref-dz-empty{ display: flex; flex-direction: column; align-items: center; gap: 4px; }.character-ref-dz-icon{ font-size: 1.8rem; }.character-ref-dz-title{ font-weight: 700; color: var(--ink); font-size: .9rem; }.character-ref-dz-hint{ font-size: .78rem; color: var(--ink-soft); line-height: 1.35; max-width: 18em; }.character-ref-preview-img{
  width: 100%; max-height: 200px; object-fit: contain; border-radius: var(--r-sm);
  background: rgba(0,0,0,.25);
}.character-ref-actions{ margin-top: 8px; display: flex; justify-content: flex-end; }.img-upload-clear{
  width:34px; height:34px; padding:0; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--panel-2); border:1px solid var(--line); color:var(--cream);
  cursor:var(--cur-paw-point, pointer); transition:border-color .15s, transform .15s, color .15s;
}.img-upload-clear:hover{ border-color:var(--red); color:var(--red-ink); transform:translateY(-1px); }.fs-img-viewer{

  position: fixed; inset: 0; z-index: calc(var(--z-dialog) + 2);
  display: none; pointer-events: none;
}.fs-img-viewer.open{ display: block; pointer-events: auto; }.fs-img-viewer-backdrop{
  position: absolute; inset: 0; border: none; padding: 0; margin: 0;
  background:
    radial-gradient(ellipse 85% 65% at 50% 45%, rgba(22,18,12,.15) 0%, rgba(4,3,2,.94) 72%),
    rgba(4,3,2,.96);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  cursor: var(--cur-paw-point, pointer);
}.fs-img-viewer-shell{
  position: absolute; inset: 0; pointer-events: none;
}.fs-img-viewer-dismiss{
  position: absolute; top: max(14px, env(safe-area-inset-top)); right: max(14px, env(safe-area-inset-right));
  z-index: 4; pointer-events: auto;
  width: 44px; height: 44px; padding: 0; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--gold) 32%, transparent);
  background: rgba(12,10,8,.72); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  color: var(--cream); font-size: 1.15rem; font-weight: 700; line-height: 1;
  cursor: var(--cur-paw-point, pointer);
  box-shadow: 0 8px 28px rgba(0,0,0,.45);
  transition: opacity .35s ease, transform .35s ease, border-color .15s, background .15s;
}.fs-img-viewer-dismiss:hover{
  border-color: var(--gold); background: color-mix(in srgb, var(--gold) 16%, transparent); transform: scale(1.06);
}.fs-img-viewer-stage{
  position: absolute; inset: 0; overflow: hidden; touch-action: none;
  cursor: var(--cur-paw-zoom, zoom-in); pointer-events: auto;
}.fs-img-viewer-stage.is-zoomed{ cursor: var(--cur-paw-grab, grab); }.fs-img-viewer-stage.is-dragging{ cursor: var(--cur-paw-grabbing, grabbing); }.fs-img-viewer-img{
  position: absolute; left: 50%; top: 50%;
  max-width: none; max-height: none; width: auto; height: auto;
  transform-origin: center center; user-select: none; -webkit-user-drag: none;
  pointer-events: none; will-change: transform;
  filter: drop-shadow(0 18px 42px rgba(0,0,0,.55));
}.fs-img-viewer-img.is-animating{
  transition: transform .24s cubic-bezier(.22,1,.36,1);
}.fs-img-viewer-hud{
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 0 16px max(22px, env(safe-area-inset-bottom));
  pointer-events: none;
  transition: opacity .38s ease, transform .38s ease;
}.fs-img-viewer-shell.is-idle .fs-img-viewer-hud{
  opacity: 0; transform: translateY(12px); pointer-events: none;
}.fs-img-viewer-shell.is-idle .fs-img-viewer-dismiss{
  opacity: 0; pointer-events: none;
}.fs-img-viewer-hint{
  margin: 0; padding: 7px 14px; border-radius: var(--r-pill);
  font-size: .78rem; font-weight: 600; letter-spacing: .02em; color: var(--cream);
  background: rgba(10,8,6,.68); border: 1px solid color-mix(in srgb, var(--gold) 22%, transparent);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  animation: fs-iv-hint-fade 4.2s ease forwards;
}.fs-img-viewer-caption{
  margin: 0; max-width: min(92vw, 640px); padding: 8px 16px;
  text-align: center; font-size: .86rem; font-weight: 600; color: var(--cream);
  border-radius: var(--r-pill);
  background: rgba(10,8,6,.72); border: 1px solid color-mix(in srgb, var(--gold) 20%, transparent);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
}.fs-iv-nav{
  appearance: none; -webkit-appearance: none; position: absolute; top: 50%; z-index: 2; pointer-events: auto;
  width: 48px; height: 48px; margin-top: -24px; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--gold) 28%, transparent); background: rgba(10,8,6,.6);
  color: var(--cream); cursor: var(--cur-paw-point, pointer); transition: .15s;
  display: inline-flex; align-items: center; justify-content: center;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}.fs-iv-nav:hover{ border-color: var(--gold); background: color-mix(in srgb, var(--gold) 20%, transparent); }.fs-iv-nav:active{ transform: translateY(-50%) scale(.94); }.fs-iv-nav-prev{ left: 16px; }.fs-iv-nav-next{ right: 16px; }.fs-iv-nav-glyph{ font-size: 1.3rem; line-height: 1; }@media (max-width: 640px){.fs-iv-nav{ width: 40px; height: 40px; margin-top: -20px; }.fs-iv-nav-prev{ left: 6px; }.fs-iv-nav-next{ right: 6px; }}.fs-img-viewer-dock{
  pointer-events: auto;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px;
  padding: 8px 12px; border-radius: var(--r-pill);
  background: rgba(10,8,6,.78); border: 1px solid color-mix(in srgb, var(--gold) 28%, transparent);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 14px 40px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,240,210,.06);
}.fs-iv-dock-btn{
  appearance: none; -webkit-appearance: none;
  min-width: 38px; height: 38px; padding: 0 10px; border-radius: var(--r-pill);
  border: 1px solid color-mix(in srgb, var(--gold) 28%, transparent); background: rgba(24,19,14,.8);
  color: var(--cream); font: inherit; font-size: .82rem; font-weight: 700;
  cursor: var(--cur-paw-point, pointer); transition: .15s;
  display: inline-flex; align-items: center; justify-content: center;
}.fs-iv-dock-btn:hover{ border-color: var(--gold); background: color-mix(in srgb, var(--gold) 14%, transparent); }.fs-iv-dock-btn:active{ transform: scale(.96); }.fs-iv-dock-glyph{ font-size: 1.15rem; line-height: 1; }.fs-iv-dock-text{ min-width: auto; padding: 0 12px; font-size: .78rem; letter-spacing: .03em; text-transform: uppercase; }.fs-iv-dock-sep{
  width: 1px; height: 22px; margin: 0 2px;
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--gold) 35%, transparent), transparent);
}.fs-iv-zoom-meter{
  width: 88px; height: 4px; border-radius: var(--r-pill); overflow: hidden;
  background: rgba(255,240,210,.12);
}.fs-iv-zoom-meter-fill{
  height: 100%; width: 0; border-radius: inherit;
  background: linear-gradient(90deg, color-mix(in srgb, var(--gold) 65%, transparent), var(--gold));
  transition: width .18s ease-out;
}.fs-iv-zoom-pct{
  min-width: 44px; text-align: center;
  font-size: .76rem; font-weight: 800; letter-spacing: .04em;
  color: rgba(255,240,210,.82); font-variant-numeric: tabular-nums;
}.fs-img-preview-btn{
  appearance: none; -webkit-appearance: none; border: none; padding: 0; margin: 0;
  background: transparent; color: inherit; font: inherit; cursor: var(--cur-paw-point, pointer);
  display: block;
}@media (max-width: 520px){.fs-img-viewer-dock{ gap: 6px; padding: 7px 10px; }.fs-iv-zoom-meter{ width: 56px; }.fs-iv-dock-text{ display: none; }.fs-iv-dock-sep{ display: none; }}

.modal-overlay{ z-index: var(--z-modal); }
.main-nav{ z-index: var(--z-nav); }
.search-popup{ z-index: var(--z-dropdown); }
.sys-dialog-overlay{ z-index: var(--z-dialog); }
#toast-container{ z-index: var(--z-toast); }

.modal-overlay{
  background: rgba(0,0,0,.66);
  backdrop-filter: blur(var(--blur-md));
  -webkit-backdrop-filter: blur(var(--blur-md));
}
.modal-window:not(.mkt-modal):not(.mkt-modal-detail):not(.mkt-modal-safety):not(.mkt-modal-seller):not(.gallery-viewer-modal):not(.image-preview-modal){
  border: 1px solid var(--glass-hairline);
  border-radius: var(--r-lg);
  box-shadow: var(--elev-3), 0 0 0 1px rgba(0,0,0,.4) inset;
  padding: var(--sp-5);
}

.modal-overlay.open .modal-window:not(.mkt-modal):not(.mkt-modal-detail):not(.mkt-modal-safety):not(.mkt-modal-seller):not(.gallery-viewer-modal):not(.image-preview-modal){
  animation: p43ModalIn var(--t-med) var(--ease-out);
}
@keyframes p43ModalIn{ from{ opacity:0; transform: translateY(12px) scale(.98); } to{ opacity:1; transform: none; } }

.modal-close{
  width: 34px; height: 34px; border-radius: var(--r-pill);
  border-color: var(--glass-hairline);
  transition: background var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);
}
.modal-close:hover{ transform: rotate(90deg) scale(1.05); }

.btn{
  border-radius: var(--r-sm);
  transition: transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out), filter var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);
  will-change: transform;
}
.btn:hover{ transform: translateY(-1px); box-shadow: var(--elev-2); }
.btn:active{ transform: translateY(0) scale(.98); box-shadow: var(--elev-1); }

.btn:disabled, .btn[disabled]{ transform: none !important; box-shadow: none; filter: saturate(.5) opacity(.7); cursor:var(--cur-paw-nope, not-allowed); }

.card{
  border-radius: var(--r-md);
  border-color: var(--line-soft);
  box-shadow: var(--elev-1);
  transition: border-color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);
}
.card:hover{ border-color: var(--glass-hairline); box-shadow: var(--elev-2); transform: translateY(-2px); }
.stats-block, .icon-grid, .profile-card, .wallet{ border-radius: var(--r-md); }
.icon-item{ border-radius: var(--r-sm); transition: background var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out); }

.map-qc{
  background: var(--glass-strong);
  backdrop-filter: blur(var(--blur-md)); -webkit-backdrop-filter: blur(var(--blur-md));
  border: 1px solid var(--glass-hairline);
  border-radius: var(--r-md);
  box-shadow: var(--elev-3);
  padding: var(--sp-4) var(--sp-4);
}
.search-popup{
  background: var(--glass-strong);
  backdrop-filter: blur(var(--blur-md)); -webkit-backdrop-filter: blur(var(--blur-md));
  border: 1px solid var(--glass-hairline);
  border-radius: var(--r-md);
  box-shadow: var(--elev-3);
}
.cpm-modal{
  background: var(--glass-strong);
  backdrop-filter: blur(var(--blur-md)); -webkit-backdrop-filter: blur(var(--blur-md));
  border: 1px solid var(--glass-hairline);
  border-radius: var(--r-md);
  box-shadow: var(--elev-3);
}
.map-hud{
  background: var(--glass-strong);
  backdrop-filter: blur(var(--blur-sm)); -webkit-backdrop-filter: blur(var(--blur-sm));
  border: 1px solid var(--glass-hairline);
  border-radius: var(--r-md);
}
@media (max-width: 768px){


  .canvas{ --canvas-gutter:var(--sp-3); padding: var(--sp-4) var(--canvas-gutter); }

  .grid-2, .grid-3{ grid-template-columns: 1fr !important; }
  .icon-grid{ grid-template-columns: repeat(2, 1fr); }
  .canvas [class*="grid-template-columns"], .canvas .grid-2, .canvas .grid-3{ min-width: 0; }
  .card, .modal-window, .stats-block, .icon-grid{ min-width: 0; max-width: 100%; }

  .modal-window:not(.gallery-viewer-modal){ width: calc(100vw - var(--sp-5)); max-width: calc(100vw - var(--sp-5)); padding: var(--sp-4); border-radius: var(--r-md); }
  .modal-overlay{ padding: var(--sp-3); }

  .main-nav{ flex-wrap: wrap; height: auto; min-height: 52px; z-index: 500; }
  .furboard{ order: 10; flex: 0 0 100%; margin: 0; border-top: 1px solid var(--line); padding: 6px 10px; }

  .search-popup.open{ z-index: 1000; }

  #app-root, .main-area{ max-width: 100vw; overflow-x: hidden; }
}

@media (max-width: 420px){
  .canvas{ --canvas-gutter:var(--sp-2); padding: var(--sp-3) var(--canvas-gutter); }
  .page-title{ font-size: 1.5rem; }
  .welcome-h{ font-size: 1.8rem; }
}

@media (prefers-reduced-motion: reduce){
  .btn, .card, .icon-item, .modal-close,
  .modal-overlay.open .modal-window, .sidebar{
    transition: none !important; animation: none !important;
  }
}


@keyframes fs-skel-sheen {
  0%   { background-position: 150% 0; }
  100% { background-position: -150% 0; }
}

.fs-skel,

.mate-ava, .ph-ava, .card-avatar, .comment-avatar, .snug-door-ava, .lb-avatar,
.kin-roll-ava, .mkt-trust-ava-img, .mkt-sp-avatar, .pk-den-avatar, .friend-avatar,
.org-reg-avatar, .org-hall-avatar, .dir-avatar, .council-recent-avatar,
.res-row-avatar, .gb-entry-avatar, .gb-avatar, .resident-mini-pfp, .character-avatar-img,
.arcade-sb-avatar, .arcade-room-avatar, .arcade-seat-avatar, .dr-avatar,

.art-img, .theater-img, .gallery-img, .profile-character-chip-img, .dr-hero-img,

.mkt-card-image img, .mkt-detail-main-img, .mkt-sp-gallery-img, .mkt-sp-listing-img,
.ws-portfolio-img, .ws-listing-thumb, .ws-update-img,

.cx-cover, .cx-series-cover-img, .cx-shop-cover, .cx-page-thumb, .cxr-img, .cxr-strip-img,

.character-sh-hero-img, .character-sh-ref-img, .character-sh-gal-img, .ph-cover-img,

.attend-logo, .tl-thumb, .swb-media-thumb {
  transition: opacity var(--t-med) var(--ease-out);
}

:where(.media-load-ready) .fs-skel:not(.is-loaded),
:where(.media-load-ready) .mate-ava:not(.is-loaded), :where(.media-load-ready) .ph-ava:not(.is-loaded), :where(.media-load-ready) .card-avatar:not(.is-loaded),
:where(.media-load-ready) .comment-avatar:not(.is-loaded), :where(.media-load-ready) .snug-door-ava:not(.is-loaded), :where(.media-load-ready) .lb-avatar:not(.is-loaded),
:where(.media-load-ready) .kin-roll-ava:not(.is-loaded), :where(.media-load-ready) .mkt-trust-ava-img:not(.is-loaded), :where(.media-load-ready) .mkt-sp-avatar:not(.is-loaded),
:where(.media-load-ready) .pk-den-avatar:not(.is-loaded), :where(.media-load-ready) .friend-avatar:not(.is-loaded), :where(.media-load-ready) .org-reg-avatar:not(.is-loaded),
:where(.media-load-ready) .org-hall-avatar:not(.is-loaded), :where(.media-load-ready) .dir-avatar:not(.is-loaded), :where(.media-load-ready) .council-recent-avatar:not(.is-loaded),
:where(.media-load-ready) .res-row-avatar:not(.is-loaded), :where(.media-load-ready) .gb-entry-avatar:not(.is-loaded), :where(.media-load-ready) .gb-avatar:not(.is-loaded),
:where(.media-load-ready) .resident-mini-pfp:not(.is-loaded), :where(.media-load-ready) .character-avatar-img:not(.is-loaded),
:where(.media-load-ready) .arcade-sb-avatar:not(.is-loaded), :where(.media-load-ready) .arcade-room-avatar:not(.is-loaded), :where(.media-load-ready) .arcade-seat-avatar:not(.is-loaded),
:where(.media-load-ready) .dr-avatar:not(.is-loaded), :where(.media-load-ready) .dr-hero-img:not(.is-loaded),
:where(.media-load-ready) .art-img:not(.is-loaded), :where(.media-load-ready) .theater-img:not(.is-loaded), :where(.media-load-ready) .gallery-img:not(.is-loaded),
:where(.media-load-ready) .profile-character-chip-img:not(.is-loaded),
:where(.media-load-ready) .mkt-card-image img:not(.is-loaded), :where(.media-load-ready) .mkt-detail-main-img:not(.is-loaded),
:where(.media-load-ready) .mkt-sp-gallery-img:not(.is-loaded), :where(.media-load-ready) .mkt-sp-listing-img:not(.is-loaded),
:where(.media-load-ready) .ws-portfolio-img:not(.is-loaded), :where(.media-load-ready) .ws-listing-thumb:not(.is-loaded), :where(.media-load-ready) .ws-update-img:not(.is-loaded),
:where(.media-load-ready) .cx-cover:not(.is-loaded), :where(.media-load-ready) .cx-series-cover-img:not(.is-loaded), :where(.media-load-ready) .cx-shop-cover:not(.is-loaded),
:where(.media-load-ready) .cx-page-thumb:not(.is-loaded), :where(.media-load-ready) .cxr-img:not(.is-loaded), :where(.media-load-ready) .cxr-strip-img:not(.is-loaded),
:where(.media-load-ready) .character-sh-hero-img:not(.is-loaded), :where(.media-load-ready) .character-sh-ref-img:not(.is-loaded), :where(.media-load-ready) .character-sh-gal-img:not(.is-loaded),
:where(.media-load-ready) .ph-cover-img:not(.is-loaded),
:where(.media-load-ready) .attend-logo:not(.is-loaded), :where(.media-load-ready) .tl-thumb:not(.is-loaded), :where(.media-load-ready) .swb-media-thumb:not(.is-loaded) {
  opacity: 0;
  background-color: var(--well);
  background-image: linear-gradient(
    100deg,
    rgba(255, 255, 255, 0) 20%,
    rgba(255, 255, 255, .07) 42%,
    rgba(255, 255, 255, .13) 50%,
    rgba(255, 255, 255, .07) 58%,
    rgba(255, 255, 255, 0) 80%
  );
  background-repeat: no-repeat;
  background-size: 250% 100%;
  animation: fs-skel-sheen 1.35s ease-in-out infinite;
}

.fs-skel.is-error, .art-img.is-error, .gallery-img.is-error, .theater-img.is-error,
.mkt-card-image img.is-error, .mkt-detail-main-img.is-error, .mkt-sp-gallery-img.is-error,
.mkt-sp-listing-img.is-error, .cx-cover.is-error, .cx-series-cover-img.is-error,
.cx-shop-cover.is-error, .cx-page-thumb.is-error, .cxr-img.is-error, .cxr-strip-img.is-error,
.character-sh-hero-img.is-error, .character-sh-ref-img.is-error, .character-sh-gal-img.is-error,
.ph-cover-img.is-error, .attend-logo.is-error, .tl-thumb.is-error, .swb-media-thumb.is-error {
  background-color: var(--well);
}

@media (prefers-reduced-motion: reduce) {
  .fs-skel:not(.is-loaded), [class].is-error { animation: none !important; }
  .mate-ava:not(.is-loaded), .ph-ava:not(.is-loaded), .card-avatar:not(.is-loaded),
  .art-img:not(.is-loaded), .gallery-img:not(.is-loaded), .theater-img:not(.is-loaded),
  .mkt-card-image img:not(.is-loaded), .mkt-detail-main-img:not(.is-loaded),
  .cx-cover:not(.is-loaded), .cxr-img:not(.is-loaded), .cxr-strip-img:not(.is-loaded),
  .character-sh-hero-img:not(.is-loaded), .ph-cover-img:not(.is-loaded) { animation: none; }
}
.sys-dialog-overlay{
  position: fixed; inset: 0; background: rgba(0,0,0,0.82);
  z-index: var(--z-dialog); display: none; align-items: center;
  justify-content: center; backdrop-filter: blur(6px);
}.sys-dialog-overlay.open{
  display: flex; animation: dialog-fade .2s ease-out;
}.sys-dialog{
  background: var(--panel); border: 2px solid var(--amber);
  border-radius: var(--radius); padding: 24px; max-width: 400px;
  width: 100%; box-shadow: 0 16px 48px rgba(0,0,0,.85);
}@media (max-width: 560px){.sys-dialog-overlay{ padding: 8px; }.sys-dialog{ max-width: none; width: calc(100% - 16px); padding: 16px; }.sys-dialog-title{ font-size: 1.15rem; }.sys-dialog-msg{ max-height: 46vh; overflow-y: auto; overscroll-behavior: contain; }.sys-dialog-actions{ flex-direction: column-reverse; }.sys-dialog-actions > .btn{ width: 100%; }}.sys-dialog-title{
  color: var(--gold-ink); font-family: var(--serif);
  font-size: 1.4rem; margin: 0 0 10px 0; font-weight: 800;
}.sys-dialog-msg{
  color: var(--ink); font-size: 0.9rem; line-height: 1.6;
  margin-bottom: 16px; white-space: pre-line;
}.sys-dialog-input{ display: none; margin-bottom: 15px; }.sys-dialog-input.active{ display: block; }.sys-dialog-actions{
  display: flex; gap: 10px; justify-content: flex-end;
}.sys-toast{ position: relative; }.fur-cooling, .fur-cooling *{ cursor: var(--cur-paw-wait, wait) !important; }#toast-container{
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 12px;
  pointer-events: none;
}.sys-toast{
  background: color-mix(in srgb, var(--panel) 97%, transparent);
  border: 1px solid var(--line);
  border-left: 4px solid var(--gold);
  color: var(--ink);
  padding: 14px 20px;
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0,0,0,.65);
  font-family: var(--sans);
  font-size: 0.86rem;
  pointer-events: auto;
  animation: toastSlideIn 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) forwards,
             toastFadeOut 0.4s ease-in forwards 4.6s;
}.sys-toast.error{ border-left-color: var(--red); }.sys-toast.success{ border-left-color: var(--ok); }.sys-toast.warning{ border-left-color: var(--amber); }.fs-tooltip{
  position: fixed;
  z-index: calc(var(--z-dialog) + 2);
  max-width: min(260px, calc(100vw - 16px));
  padding: 6px 11px;
  font-family: var(--mono);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .05em;
  line-height: 1.35;
  color: var(--cream);
  text-align: center;
  background: color-mix(in srgb, var(--panel) 94%, transparent);
  border: 1px solid color-mix(in srgb, var(--gold-soft) 70%, var(--line));
  border-radius: var(--r-sm);
  box-shadow: 0 6px 18px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out);
}.fs-tooltip.fs-tooltip--on{
  opacity: 1;
  transform: translateY(0);
}.fs-tooltip::after{
  content: '';
  position: absolute;
  left: 50%;
  bottom: -4px;
  width: 8px;
  height: 8px;
  transform: translateX(-50%) rotate(45deg);
  background: inherit;
  border-right: 1px solid color-mix(in srgb, var(--gold-soft) 70%, var(--line));
  border-bottom: 1px solid color-mix(in srgb, var(--gold-soft) 70%, var(--line));
}.fs-tooltip.fs-tooltip--below::after{
  bottom: auto;
  top: -4px;
  border-right: none;
  border-bottom: none;
  border-left: 1px solid color-mix(in srgb, var(--gold-soft) 70%, var(--line));
  border-top: 1px solid color-mix(in srgb, var(--gold-soft) 70%, var(--line));
}@media (prefers-reduced-motion: reduce){.fs-tooltip{ transition: none; transform: none; }.fs-tooltip.fs-tooltip--on{ transform: none; }}.highlight-gold{
  animation: p49PulseGold .4s var(--ease-out);
  display: inline-block;
  will-change: transform, color, text-shadow;
}@media (prefers-reduced-motion: reduce){.highlight-gold{ animation: none; color: var(--gold-ink); }}#cypher-main{max-width:1120px;margin:0 auto;width:100%}form > label{display:block;margin:0 0 15px;color:var(--ink-soft);font-size:.82rem;font-weight:700;letter-spacing:.2px}form > label > input,form > label > textarea,form > label > select{margin-top:6px;font-weight:400}input[type=file]{width:100%;box-sizing:border-box;background:var(--well);border:1px dashed var(--line);color:var(--ink-soft);padding:10px 12px;border-radius:8px;font-size:.85rem;cursor:pointer}input[type=file]::file-selector-button{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:5px 12px;margin-right:12px;font-weight:700;font-family:var(--mono);font-size:.78rem;cursor:pointer;transition:border-color .15s}input[type=file]::file-selector-button:hover{border-color:var(--gold)}.check-row{display:flex;align-items:flex-start;gap:9px;font-size:.9rem;color:var(--ink-soft);margin:4px 0 14px;line-height:1.4}.check-row input{width:auto;margin:3px 0 0;flex:0 0 auto}.card h3{margin:0 0 14px;color:var(--gold);font-family:var(--serif);font-weight:700;font-size:1.15rem}.card > form{margin:0}form .btn{margin-top:4px}.page.page-fitted #cypher-main,.canvas>#cypher-main{width:100%}.main-area--bare{grid-template-columns:1fr}.tk-evidence{max-width:min(420px,100%);border-radius:8px;display:block;border:1px solid var(--line)}.citizen-chip-ava--none{background:var(--field);border:1px solid var(--line);display:inline-block}.art-by-ava{width:16px;height:16px;border-radius:50%;object-fit:cover;vertical-align:-3px;margin-right:4px;border:1px solid var(--line)}.tk-history{margin-top:10px}.tk-subject-card{display:flex;align-items:center;gap:10px}@keyframes fade{from{opacity:0}to{opacity:1}}.site-foot{flex:0 0 auto;background:var(--bg-header,#0a0908);border-top:1px solid var(--line);padding:14px 28px;color:var(--ink-soft);font-size:.78rem}.site-foot .wrap{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.canvas{display:flex;flex-direction:column;padding-bottom:0}.canvas>*{flex:0 0 auto}.canvas>#cypher-main{flex:1 0 auto;padding-bottom:44px}.canvas>.site-foot{margin:0 calc(-1 * var(--canvas-gutter));border-top:1px solid var(--line)}body:has(>.site-foot){display:flex;flex-direction:column;min-height:100vh;min-height:100svh}body>.site-foot{margin-top:auto}.sidebar .side-foot{display:flex;flex-direction:column;gap:8px;align-items:flex-start;font-size:.76rem;color:var(--ink-soft);line-height:1.6}.sidebar .side-foot a{color:var(--link)}.err-page{display:flex;align-items:center;justify-content:center;min-height:min(60vh,520px);padding:24px}.err-panel{max-width:min(480px,94vw);text-align:center;padding:34px 30px}.err-code{font-family:var(--serif,Georgia,serif);font-weight:800;font-size:clamp(3.6rem,12vw,6rem);line-height:1;margin:0;color:var(--gold,var(--accent));letter-spacing:1px}.err-title{font-family:var(--serif,Georgia,serif);margin:6px 0 8px;font-size:1.5rem}.err-sub{margin:0 auto 22px;max-width:34ch}.err-act{margin:0}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input[type=date],input[type=datetime-local],input[type=time],input[type=search],textarea,select{width:100%;background:var(--field-bg);border:1px solid var(--line);color:var(--ink);padding:10px 12px;border-radius:8px;font-family:inherit;font-size:.88rem;transition:.15s}input:focus,textarea:focus,select:focus{background-color:var(--field-focus-bg)}select{appearance:none;-webkit-appearance:none;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:var(--select-chevron-pos);background-size:var(--select-chevron-size);padding-right:32px}select:focus{background-image:var(--select-chevron)}@media (forced-colors:active){select{appearance:auto;-webkit-appearance:auto;background-image:none}}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input,textarea,select{color-scheme:var(--scheme)}input::-webkit-calendar-picker-indicator{opacity:.7;cursor:var(--cur-paw-point, pointer)}input::-webkit-calendar-picker-indicator:hover{opacity:1}.btn.primary{border-color:var(--btn-primary-ink);color:var(--btn-primary-ink);background:var(--btn-primary-bg)}.btn.primary:hover{background:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-ink)}#cypher-search#cypher-search{background:var(--scrim)}#cypher-search#cypher-search .cs-row:hover,#cypher-search#cypher-search .cs-row.sel{background:var(--well)}@media (max-width: 768px){:root{--header-h: 120px;}}

input::placeholder,textarea::placeholder{color:inherit;opacity:1}
.soul-pager{flex-wrap:wrap}
.soul-pager a,.soul-pager [aria-disabled]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;box-sizing:border-box}
.table-scroll{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.table-scroll:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
span.ico{width:1.2em;height:1.2em;display:inline-block;vertical-align:-.2em;flex:0 0 auto;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}@media(forced-colors:active){span.ico{forced-color-adjust:none;background-color:CanvasText}}.ico-home{-webkit-mask-image:url(/assets/icons/home.svg?v=a7296f7c);mask-image:url(/assets/icons/home.svg?v=a7296f7c)}.ico-browse{-webkit-mask-image:url(/assets/icons/browse.svg?v=355310b6);mask-image:url(/assets/icons/browse.svg?v=355310b6)}.ico-gallery{-webkit-mask-image:url(/assets/icons/gallery.svg?v=54a5d71c);mask-image:url(/assets/icons/gallery.svg?v=54a5d71c)}.ico-feed{-webkit-mask-image:url(/assets/icons/feed.svg?v=91847ec2);mask-image:url(/assets/icons/feed.svg?v=91847ec2)}.ico-journal{-webkit-mask-image:url(/assets/icons/journal.svg?v=1a6cd604);mask-image:url(/assets/icons/journal.svg?v=1a6cd604)}.ico-swap{-webkit-mask-image:url(/assets/icons/swap.svg?v=85da580f);mask-image:url(/assets/icons/swap.svg?v=85da580f)}.ico-membership{-webkit-mask-image:url(/assets/icons/membership.svg?v=b0f8e900);mask-image:url(/assets/icons/membership.svg?v=b0f8e900)}.ico-profile{-webkit-mask-image:url(/assets/icons/profile.svg?v=9e31b7c5);mask-image:url(/assets/icons/profile.svg?v=9e31b7c5)}.ico-hunting{-webkit-mask-image:url(/assets/icons/hunting.svg?v=b537fac2);mask-image:url(/assets/icons/hunting.svg?v=b537fac2)}.ico-tray{-webkit-mask-image:url(/assets/icons/tray.svg?v=1ddc2b11);mask-image:url(/assets/icons/tray.svg?v=1ddc2b11)}.ico-link{-webkit-mask-image:url(/assets/icons/link.svg?v=a19755b5);mask-image:url(/assets/icons/link.svg?v=a19755b5)}.ico-shield{-webkit-mask-image:url(/assets/icons/shield.svg?v=9dc69667);mask-image:url(/assets/icons/shield.svg?v=9dc69667)}.ico-x{-webkit-mask-image:url(/assets/icons/x.svg?v=3d93c280);mask-image:url(/assets/icons/x.svg?v=3d93c280)}.ico-search{-webkit-mask-image:url(/assets/icons/search.svg?v=ae422d5f);mask-image:url(/assets/icons/search.svg?v=ae422d5f)}.ico-messages{-webkit-mask-image:url(/assets/icons/messages.svg?v=1cd36f6e);mask-image:url(/assets/icons/messages.svg?v=1cd36f6e)}.ico-bell{-webkit-mask-image:url(/assets/icons/bell.svg?v=c8dd47f8);mask-image:url(/assets/icons/bell.svg?v=c8dd47f8)}.ico-signin{-webkit-mask-image:url(/assets/icons/signin.svg?v=bff9cb29);mask-image:url(/assets/icons/signin.svg?v=bff9cb29)}.ico-signout{-webkit-mask-image:url(/assets/icons/signout.svg?v=c0c70f84);mask-image:url(/assets/icons/signout.svg?v=c0c70f84)}.ico-catalogue{-webkit-mask-image:url(/assets/icons/catalogue.svg?v=25f8493b);mask-image:url(/assets/icons/catalogue.svg?v=25f8493b)}.ico-shelves{-webkit-mask-image:url(/assets/icons/shelves.svg?v=32941c7c);mask-image:url(/assets/icons/shelves.svg?v=32941c7c)}.ico-gift{-webkit-mask-image:url(/assets/icons/gift.svg?v=16882c3a);mask-image:url(/assets/icons/gift.svg?v=16882c3a)}.ico-basket{-webkit-mask-image:url(/assets/icons/basket.svg?v=12a4dc6a);mask-image:url(/assets/icons/basket.svg?v=12a4dc6a)}.ico-engine{-webkit-mask-image:url(/assets/icons/engine.svg?v=7e03e999);mask-image:url(/assets/icons/engine.svg?v=7e03e999)}.ico-schedule{-webkit-mask-image:url(/assets/icons/schedule.svg?v=65f7e530);mask-image:url(/assets/icons/schedule.svg?v=65f7e530)}.ico-hourglass{-webkit-mask-image:url(/assets/icons/hourglass.svg?v=6619b341);mask-image:url(/assets/icons/hourglass.svg?v=6619b341)}.ico-building{-webkit-mask-image:url(/assets/icons/building.svg?v=05ae4c63);mask-image:url(/assets/icons/building.svg?v=05ae4c63)}.ico-suit_spade{-webkit-mask-image:url(/assets/icons/suit_spade.svg?v=e4830833);mask-image:url(/assets/icons/suit_spade.svg?v=e4830833)}.ico-suit_heart{-webkit-mask-image:url(/assets/icons/suit_heart.svg?v=0148f2c9);mask-image:url(/assets/icons/suit_heart.svg?v=0148f2c9)}.ico-suit_diamond{-webkit-mask-image:url(/assets/icons/suit_diamond.svg?v=a263c855);mask-image:url(/assets/icons/suit_diamond.svg?v=a263c855)}.ico-suit_club{-webkit-mask-image:url(/assets/icons/suit_club.svg?v=231a2edf);mask-image:url(/assets/icons/suit_club.svg?v=231a2edf)}.ico-people{-webkit-mask-image:url(/assets/icons/people.svg?v=58f4f9cd);mask-image:url(/assets/icons/people.svg?v=58f4f9cd)}.ico-toast_warn{-webkit-mask-image:url(/assets/icons/toast_warn.svg?v=31270f48);mask-image:url(/assets/icons/toast_warn.svg?v=31270f48)}.ico-toast_ok{-webkit-mask-image:url(/assets/icons/toast_ok.svg?v=16d3f496);mask-image:url(/assets/icons/toast_ok.svg?v=16d3f496)}.ico-toast_bolt{-webkit-mask-image:url(/assets/icons/toast_bolt.svg?v=e66a8603);mask-image:url(/assets/icons/toast_bolt.svg?v=e66a8603)}.ico-flag{-webkit-mask-image:url(/assets/icons/flag.svg?v=54e5fca7);mask-image:url(/assets/icons/flag.svg?v=54e5fca7)}.ico-camera{-webkit-mask-image:url(/assets/icons/camera.svg?v=25c8f30d);mask-image:url(/assets/icons/camera.svg?v=25c8f30d)}.ico-close{-webkit-mask-image:url(/assets/icons/close.svg?v=3600b917);mask-image:url(/assets/icons/close.svg?v=3600b917)}.ico-crown{-webkit-mask-image:url(/assets/icons/crown.svg?v=e1e856bc);mask-image:url(/assets/icons/crown.svg?v=e1e856bc)}.ico-pin{-webkit-mask-image:url(/assets/icons/pin.svg?v=5a56c52d);mask-image:url(/assets/icons/pin.svg?v=5a56c52d)}.ico-lock{-webkit-mask-image:url(/assets/icons/lock.svg?v=b0d7694f);mask-image:url(/assets/icons/lock.svg?v=b0d7694f)}.ico-trash{-webkit-mask-image:url(/assets/icons/trash.svg?v=e090fb3e);mask-image:url(/assets/icons/trash.svg?v=e090fb3e)}.ico-check{-webkit-mask-image:url(/assets/icons/check.svg?v=37012c2a);mask-image:url(/assets/icons/check.svg?v=37012c2a)}.ico-warning_triangle{-webkit-mask-image:url(/assets/icons/warning_triangle.svg?v=71f91939);mask-image:url(/assets/icons/warning_triangle.svg?v=71f91939)}.ico-refresh{-webkit-mask-image:url(/assets/icons/refresh.svg?v=6116f4f3);mask-image:url(/assets/icons/refresh.svg?v=6116f4f3)}.ico-key{-webkit-mask-image:url(/assets/icons/key.svg?v=498499da);mask-image:url(/assets/icons/key.svg?v=498499da)}.ico-eye_view{-webkit-mask-image:url(/assets/icons/eye_view.svg?v=356f3e12);mask-image:url(/assets/icons/eye_view.svg?v=356f3e12)}.ico-person_single{-webkit-mask-image:url(/assets/icons/person_single.svg?v=88234d2e);mask-image:url(/assets/icons/person_single.svg?v=88234d2e)}.ico-arrow_left{-webkit-mask-image:url(/assets/icons/arrow_left.svg?v=0878aad9);mask-image:url(/assets/icons/arrow_left.svg?v=0878aad9)}.ico-arrow_right{-webkit-mask-image:url(/assets/icons/arrow_right.svg?v=9d192e2f);mask-image:url(/assets/icons/arrow_right.svg?v=9d192e2f)}.ico-arrow_up{-webkit-mask-image:url(/assets/icons/arrow_up.svg?v=3e3be8d7);mask-image:url(/assets/icons/arrow_up.svg?v=3e3be8d7)}.ico-arrow_down{-webkit-mask-image:url(/assets/icons/arrow_down.svg?v=90c7666a);mask-image:url(/assets/icons/arrow_down.svg?v=90c7666a)}.ico-folder{-webkit-mask-image:url(/assets/icons/folder.svg?v=96d4af7f);mask-image:url(/assets/icons/folder.svg?v=96d4af7f)}.ico-banned{-webkit-mask-image:url(/assets/icons/banned.svg?v=a30c98ee);mask-image:url(/assets/icons/banned.svg?v=a30c98ee)}.ico-question_mark{-webkit-mask-image:url(/assets/icons/question_mark.svg?v=207944fc);mask-image:url(/assets/icons/question_mark.svg?v=207944fc)}.ico-clipboard{-webkit-mask-image:url(/assets/icons/clipboard.svg?v=e1f005df);mask-image:url(/assets/icons/clipboard.svg?v=e1f005df)}.ico-swap_arrows{-webkit-mask-image:url(/assets/icons/swap_arrows.svg?v=0aad7d9f);mask-image:url(/assets/icons/swap_arrows.svg?v=0aad7d9f)}.ico-minus_circle{-webkit-mask-image:url(/assets/icons/minus_circle.svg?v=184d5e28);mask-image:url(/assets/icons/minus_circle.svg?v=184d5e28)}.ico-paperclip{-webkit-mask-image:url(/assets/icons/paperclip.svg?v=38dce8ab);mask-image:url(/assets/icons/paperclip.svg?v=38dce8ab)}.ico-plug{-webkit-mask-image:url(/assets/icons/plug.svg?v=13f1b60d);mask-image:url(/assets/icons/plug.svg?v=13f1b60d)}.ico-globe{-webkit-mask-image:url(/assets/icons/globe.svg?v=e1839c9a);mask-image:url(/assets/icons/globe.svg?v=e1839c9a)}.ico-envelope{-webkit-mask-image:url(/assets/icons/envelope.svg?v=8fce59a4);mask-image:url(/assets/icons/envelope.svg?v=8fce59a4)}.ico-house{-webkit-mask-image:url(/assets/icons/house.svg?v=5e31c684);mask-image:url(/assets/icons/house.svg?v=5e31c684)}.ico-shop{-webkit-mask-image:url(/assets/icons/shop.svg?v=ca940626);mask-image:url(/assets/icons/shop.svg?v=ca940626)}.ico-train{-webkit-mask-image:url(/assets/icons/train.svg?v=a57e0915);mask-image:url(/assets/icons/train.svg?v=a57e0915)}.ico-bus{-webkit-mask-image:url(/assets/icons/bus.svg?v=0fa175f8);mask-image:url(/assets/icons/bus.svg?v=0fa175f8)}.ico-telephone{-webkit-mask-image:url(/assets/icons/telephone.svg?v=5d74612b);mask-image:url(/assets/icons/telephone.svg?v=5d74612b)}.ico-siren{-webkit-mask-image:url(/assets/icons/siren.svg?v=a326a0fa);mask-image:url(/assets/icons/siren.svg?v=a326a0fa)}.ico-compass{-webkit-mask-image:url(/assets/icons/compass.svg?v=c0e86a8d);mask-image:url(/assets/icons/compass.svg?v=c0e86a8d)}.ico-map{-webkit-mask-image:url(/assets/icons/map.svg?v=4415d202);mask-image:url(/assets/icons/map.svg?v=4415d202)}.ico-signpost{-webkit-mask-image:url(/assets/icons/signpost.svg?v=01590932);mask-image:url(/assets/icons/signpost.svg?v=01590932)}.ico-construction{-webkit-mask-image:url(/assets/icons/construction.svg?v=b56545d9);mask-image:url(/assets/icons/construction.svg?v=b56545d9)}.ico-tools_wrench{-webkit-mask-image:url(/assets/icons/tools_wrench.svg?v=19ac4ba4);mask-image:url(/assets/icons/tools_wrench.svg?v=19ac4ba4)}.ico-weather_sun{-webkit-mask-image:url(/assets/icons/weather_sun.svg?v=5d17580d);mask-image:url(/assets/icons/weather_sun.svg?v=5d17580d)}.ico-weather_moon{-webkit-mask-image:url(/assets/icons/weather_moon.svg?v=eaa21ebb);mask-image:url(/assets/icons/weather_moon.svg?v=eaa21ebb)}.ico-weather_cloud{-webkit-mask-image:url(/assets/icons/weather_cloud.svg?v=0b88ff2d);mask-image:url(/assets/icons/weather_cloud.svg?v=0b88ff2d)}.ico-weather_mist{-webkit-mask-image:url(/assets/icons/weather_mist.svg?v=3e81b561);mask-image:url(/assets/icons/weather_mist.svg?v=3e81b561)}.ico-weather_rain{-webkit-mask-image:url(/assets/icons/weather_rain.svg?v=79e184f8);mask-image:url(/assets/icons/weather_rain.svg?v=79e184f8)}.ico-weather_storm{-webkit-mask-image:url(/assets/icons/weather_storm.svg?v=565971af);mask-image:url(/assets/icons/weather_storm.svg?v=565971af)}.ico-weather_snow{-webkit-mask-image:url(/assets/icons/weather_snow.svg?v=d655acaa);mask-image:url(/assets/icons/weather_snow.svg?v=d655acaa)}.ico-weather_snowflake{-webkit-mask-image:url(/assets/icons/weather_snowflake.svg?v=594a4f11);mask-image:url(/assets/icons/weather_snowflake.svg?v=594a4f11)}.ico-palette{-webkit-mask-image:url(/assets/icons/palette.svg?v=28f1c573);mask-image:url(/assets/icons/palette.svg?v=28f1c573)}.ico-paintbrush{-webkit-mask-image:url(/assets/icons/paintbrush.svg?v=f970e45a);mask-image:url(/assets/icons/paintbrush.svg?v=f970e45a)}.ico-picture_frame{-webkit-mask-image:url(/assets/icons/picture_frame.svg?v=5a343014);mask-image:url(/assets/icons/picture_frame.svg?v=5a343014)}.ico-book{-webkit-mask-image:url(/assets/icons/book.svg?v=a24766ec);mask-image:url(/assets/icons/book.svg?v=a24766ec)}.ico-scroll{-webkit-mask-image:url(/assets/icons/scroll.svg?v=cc76a6f1);mask-image:url(/assets/icons/scroll.svg?v=cc76a6f1)}.ico-chat_bubble{-webkit-mask-image:url(/assets/icons/chat_bubble.svg?v=888e7d6a);mask-image:url(/assets/icons/chat_bubble.svg?v=888e7d6a)}.ico-speech_balloon{-webkit-mask-image:url(/assets/icons/speech_balloon.svg?v=8961cb27);mask-image:url(/assets/icons/speech_balloon.svg?v=8961cb27)}.ico-passport{-webkit-mask-image:url(/assets/icons/passport.svg?v=da189e2e);mask-image:url(/assets/icons/passport.svg?v=da189e2e)}.ico-memo{-webkit-mask-image:url(/assets/icons/memo.svg?v=883bad9b);mask-image:url(/assets/icons/memo.svg?v=883bad9b)}.ico-receipt{-webkit-mask-image:url(/assets/icons/receipt.svg?v=ddd5b868);mask-image:url(/assets/icons/receipt.svg?v=ddd5b868)}.ico-ticket{-webkit-mask-image:url(/assets/icons/ticket.svg?v=db358c98);mask-image:url(/assets/icons/ticket.svg?v=db358c98)}.ico-gear{-webkit-mask-image:url(/assets/icons/gear.svg?v=ce3b1829);mask-image:url(/assets/icons/gear.svg?v=ce3b1829)}.ico-chart_bar{-webkit-mask-image:url(/assets/icons/chart_bar.svg?v=f43283af);mask-image:url(/assets/icons/chart_bar.svg?v=f43283af)}.ico-megaphone{-webkit-mask-image:url(/assets/icons/megaphone.svg?v=9d5c824a);mask-image:url(/assets/icons/megaphone.svg?v=9d5c824a)}.ico-scales{-webkit-mask-image:url(/assets/icons/scales.svg?v=f4d24bd6);mask-image:url(/assets/icons/scales.svg?v=f4d24bd6)}.ico-dice{-webkit-mask-image:url(/assets/icons/dice.svg?v=b6d5b204);mask-image:url(/assets/icons/dice.svg?v=b6d5b204)}.ico-upload_arrow{-webkit-mask-image:url(/assets/icons/upload_arrow.svg?v=2c477c2a);mask-image:url(/assets/icons/upload_arrow.svg?v=2c477c2a)}.ico-page_single{-webkit-mask-image:url(/assets/icons/page_single.svg?v=9fd6eac2);mask-image:url(/assets/icons/page_single.svg?v=9fd6eac2)}.ico-medal{-webkit-mask-image:url(/assets/icons/medal.svg?v=38046f23);mask-image:url(/assets/icons/medal.svg?v=38046f23)}.ico-trophy{-webkit-mask-image:url(/assets/icons/trophy.svg?v=f261d789);mask-image:url(/assets/icons/trophy.svg?v=f261d789)}.ico-star_outline{-webkit-mask-image:url(/assets/icons/star_outline.svg?v=959b01b3);mask-image:url(/assets/icons/star_outline.svg?v=959b01b3)}.ico-heart_outline{-webkit-mask-image:url(/assets/icons/heart_outline.svg?v=537d0819);mask-image:url(/assets/icons/heart_outline.svg?v=537d0819)}.ico-handshake{-webkit-mask-image:url(/assets/icons/handshake.svg?v=afd87c7d);mask-image:url(/assets/icons/handshake.svg?v=afd87c7d)}.ico-party_popper{-webkit-mask-image:url(/assets/icons/party_popper.svg?v=6003ad0b);mask-image:url(/assets/icons/party_popper.svg?v=6003ad0b)}.ico-briefcase{-webkit-mask-image:url(/assets/icons/briefcase.svg?v=b467a50d);mask-image:url(/assets/icons/briefcase.svg?v=b467a50d)}.ico-coin{-webkit-mask-image:url(/assets/icons/coin.svg?v=ad89525b);mask-image:url(/assets/icons/coin.svg?v=ad89525b)}.ico-cpu_bot{-webkit-mask-image:url(/assets/icons/cpu_bot.svg?v=5c465d87);mask-image:url(/assets/icons/cpu_bot.svg?v=5c465d87)}.ico-car{-webkit-mask-image:url(/assets/icons/car.svg?v=cd692dc6);mask-image:url(/assets/icons/car.svg?v=cd692dc6)}.ico-ship{-webkit-mask-image:url(/assets/icons/ship.svg?v=19d2741b);mask-image:url(/assets/icons/ship.svg?v=19d2741b)}.ico-gamepad{-webkit-mask-image:url(/assets/icons/gamepad.svg?v=e017d1e3);mask-image:url(/assets/icons/gamepad.svg?v=e017d1e3)}.ico-undo{-webkit-mask-image:url(/assets/icons/undo.svg?v=4d5e6b72);mask-image:url(/assets/icons/undo.svg?v=4d5e6b72)}.ico-redo{-webkit-mask-image:url(/assets/icons/redo.svg?v=f06adb18);mask-image:url(/assets/icons/redo.svg?v=f06adb18)}.ico-scissors{-webkit-mask-image:url(/assets/icons/scissors.svg?v=01ebb7a7);mask-image:url(/assets/icons/scissors.svg?v=01ebb7a7)}.ico-recycle{-webkit-mask-image:url(/assets/icons/recycle.svg?v=261e54a9);mask-image:url(/assets/icons/recycle.svg?v=261e54a9)}.ico-tag{-webkit-mask-image:url(/assets/icons/tag.svg?v=e406dafc);mask-image:url(/assets/icons/tag.svg?v=e406dafc)}.ico-floppy_disk{-webkit-mask-image:url(/assets/icons/floppy_disk.svg?v=d981d98c);mask-image:url(/assets/icons/floppy_disk.svg?v=d981d98c)}.ico-note{-webkit-mask-image:url(/assets/icons/note.svg?v=a5d37c76);mask-image:url(/assets/icons/note.svg?v=a5d37c76)}.ico-window_open{-webkit-mask-image:url(/assets/icons/window_open.svg?v=b92f432c);mask-image:url(/assets/icons/window_open.svg?v=b92f432c)}.ico-thumbs_up{-webkit-mask-image:url(/assets/icons/thumbs_up.svg?v=3e183317);mask-image:url(/assets/icons/thumbs_up.svg?v=3e183317)}.ico-face_laugh{-webkit-mask-image:url(/assets/icons/face_laugh.svg?v=36d593cf);mask-image:url(/assets/icons/face_laugh.svg?v=36d593cf)}.ico-face_wow{-webkit-mask-image:url(/assets/icons/face_wow.svg?v=19019da3);mask-image:url(/assets/icons/face_wow.svg?v=19019da3)}.ico-face_sad{-webkit-mask-image:url(/assets/icons/face_sad.svg?v=c487f69a);mask-image:url(/assets/icons/face_sad.svg?v=c487f69a)}.ico-face_angry{-webkit-mask-image:url(/assets/icons/face_angry.svg?v=181a6310);mask-image:url(/assets/icons/face_angry.svg?v=181a6310)}.ico-flame{-webkit-mask-image:url(/assets/icons/flame.svg?v=015646ae);mask-image:url(/assets/icons/flame.svg?v=015646ae)}.ico-archive_box{-webkit-mask-image:url(/assets/icons/archive_box.svg?v=9ae509fc);mask-image:url(/assets/icons/archive_box.svg?v=9ae509fc)}.cy-signout{display:contents}.cy-signout button{cursor:var(--cur-paw-point, pointer)}button.linkish{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:var(--cur-paw-point, pointer)}.hero-title{color:var(--ink)}.main-nav{background:var(--nav-bg,linear-gradient(180deg,var(--panel),var(--bg-header)))}.page,.page-box,.card{box-shadow:var(--surface-shadow,0 2px 10px rgba(0,0,0,.25))}.btn:hover{background:var(--btn-hover-bg,var(--panel));color:var(--btn-hover-ink,var(--cream))}.seg{background:var(--seg-track,rgba(0,0,0,.25))}.seg-btn.seg-on{color:var(--seg-on-ink,#1a1510)}.seg-btn{color:var(--seg-ink,var(--ink))}.seg--wrap .seg-btn.seg-on{color:var(--seg-on-ink,#1a1510)}.character-ref-dropzone{display:block}form.inline{display:inline-block;margin:0}.of-rail-chevron .ico{width:16px;height:16px}.modal-close .ico,.fs-img-viewer-dismiss .ico{width:16px;height:16px}.character-ref-dz-icon .ico{width:28px;height:28px}.img-upload-clear .ico{width:16px;height:16px;vertical-align:-3px}.site-header{background-image:none}.page-box{background:color-mix(in srgb, var(--panel) 55%, var(--bg) 45%);border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px}.main-nav-inner{display:flex;align-items:center;width:100%;gap:5px;max-width:1200px;margin:0 auto}@media (max-width: 768px){.main-nav-inner{flex-wrap:wrap}}.cypher-line{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:0;font:inherit;color:var(--ink-soft);cursor:pointer;text-decoration:none}.cypher-line:hover{color:var(--gold)}.cypher-coin{width:18px;height:18px;flex-shrink:0;border-radius:50%;display:block}.of-rail-chevron--out{display:none}.main-area--bare{grid-template-columns:1fr!important}@media (max-width:768px){.main-area > .of-rail{background:var(--rail-bg,var(--panel));border-top:1px solid var(--line)}}.legal-page{display:grid;grid-template-columns:210px minmax(0,1fr);gap:26px;align-items:start}.legal-toc{position:sticky;top:76px;max-height:72vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 0}.legal-toc-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);padding:0 16px 10px;margin-bottom:6px;border-bottom:1px solid var(--line)}.legal-toc-link{display:block;padding:8px 16px;color:var(--ink);text-decoration:none;font-size:13px;line-height:1.35;border-left:3px solid transparent;transition:.15s}.legal-toc-link:hover{background:var(--panel-2);color:var(--ink);border-left-color:var(--line)}.legal-doc .legal-block{scroll-margin-top:84px}.legal-doc .legal-block:target{border-left:3px solid var(--accent);padding-left:14px;margin-left:-17px}.legal-top{margin:28px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:12px}.legal-top a{color:var(--ink)}@media (max-width:820px){.legal-page{grid-template-columns:1fr}.legal-toc{position:static;max-height:none}}.legal-index{margin:0;padding-left:20px}.legal-index li{margin:8px 0}nav.soul-pager{display:flex;align-items:center;justify-content:center;gap:12px}.soul-pager .pager-pos{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.soul-pager [aria-disabled]{opacity:.35;pointer-events:none}:root{
  --fox:var(--accent); --fox-deep:var(--accent-deep,var(--accent)); --fox-tip:color-mix(in srgb, var(--accent) 42%, #fff);
  --cur-paw: auto; --cur-paw-point: pointer; --cur-paw-cross: pointer; --cur-paw-text: text;
  --cur-paw-nope: not-allowed; --cur-paw-zoom: zoom-in; --cur-paw-wait: progress;
  --cur-paw-grab: grab; --cur-paw-grabbing: grabbing;
  --cur-paw-press-down: pointer; --cur-paw-press-up: pointer;
}
html, body{ cursor: var(--cur-paw); }
a, button, select, label, summary, [data-action], [data-goto], [role="button"],
input[type="submit"], input[type="button"], input[type="file"],
.btn, .chip, .clickable, .nav-circle, .of-rail-btn, .pref-toggle, .seg-btn, .tab{
  cursor: var(--cur-paw-point) !important;
}
input[type="checkbox"], input[type="radio"], input[type="range"], .modal-close{
  cursor: var(--cur-paw-cross) !important;
}
input:not([type]), input[type="text"], input[type="search"], input[type="email"],
input[type="password"], input[type="number"], input[type="url"], input[type="tel"],
textarea, [contenteditable="true"]{ cursor: var(--cur-paw-text) !important; }
button:disabled, [disabled], .disabled, .cd-active{ cursor: var(--cur-paw-nope) !important; }
[data-cypher-lightbox], [data-action="image-preview"], .gallery-full img, .zoomable{ cursor: var(--cur-paw-zoom) !important; }
::-webkit-scrollbar-thumb{ cursor: var(--cur-paw-grab, grab); }
::-webkit-scrollbar-thumb:active{ cursor: var(--cur-paw-grabbing, grabbing); }
.canvas{ background-image: var(--canvas-texture, none); background-size: 72px 72px; }
button:active{ transform: scale(.97); }

#global-spinner{ position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 12000; display: none; }
#global-spinner, .cd-spinner{ --tail-size: 52px; --tail-thick: 7px; width: var(--tail-size); height: var(--tail-size); border: 0; background: none; box-shadow: none; }
.cd-spinner{ position: relative; display: inline-block; vertical-align: middle; --tail-size: 14px; --tail-thick: 2.5px; }
#global-spinner::before, .cd-spinner::before{
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(from 90deg, transparent 0 70deg, color-mix(in srgb, var(--fox) 25%, transparent) 95deg, var(--fox-deep) 150deg, var(--fox) 235deg, var(--fox-tip) 300deg, var(--fox-tip) 345deg 360deg);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - var(--tail-thick) - 1px), #000 calc(100% - var(--tail-thick)));
  mask: radial-gradient(farthest-side, transparent calc(100% - var(--tail-thick) - 1px), #000 calc(100% - var(--tail-thick)));
  animation: fur-tail-chase .8s linear infinite;
}
#global-spinner::after{ content: ""; background: var(--brand-glyph-ink, transparent); -webkit-mask: var(--brand-glyph, none) center/36% no-repeat; mask: var(--brand-glyph, none) center/36% no-repeat; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: calc(var(--tail-size) * .36); line-height: 1; animation: fur-paw-bob 1.2s ease-in-out infinite; }
@keyframes fur-tail-chase{ to{ transform: rotate(360deg); } }
@keyframes fur-paw-bob{ 0%,100%{ transform: scale(1); } 50%{ transform: scale(1.18) rotate(-8deg); } }

.paw-pop{ position: fixed; z-index: 12500; pointer-events: none; user-select: none; width: 17px; height: 17px; background: var(--brand-glyph-ink, transparent); -webkit-mask: var(--brand-glyph, none) center/contain no-repeat; mask: var(--brand-glyph, none) center/contain no-repeat; transform: translate(-50%,-50%); animation: fur-paw-pop .55s var(--ease-out, ease-out) forwards; }
@keyframes fur-paw-pop{
  0%  { opacity: .85; transform: translate(-50%,-50%) rotate(var(--pop-rot, -14deg)) scale(calc(var(--pop-flip, 1) * .45), .45); }
  100%{ opacity: 0; transform: translate(-50%, calc(-50% - 18px)) rotate(var(--pop-rot, -14deg)) scale(calc(var(--pop-flip, 1) * 1.25), 1.25); }
}
#global-modal-window::before{ content: ""; position: absolute; right: 20px; bottom: 16px; z-index: 0; width: 92px; height: 92px; background: var(--brand-glyph-ink, transparent); -webkit-mask: var(--brand-glyph, none) center/contain no-repeat; mask: var(--brand-glyph, none) center/contain no-repeat; opacity: .05; transform: rotate(-18deg); pointer-events: none; user-select: none; }
.sys-toast{ position: relative; }
.sys-toast::after{ content: ""; position: absolute; right: 8px; bottom: 4px; width: 18px; height: 18px; background: var(--brand-glyph-ink, transparent); -webkit-mask: var(--brand-glyph, none) center/contain no-repeat; mask: var(--brand-glyph, none) center/contain no-repeat; opacity: .12; pointer-events: none; user-select: none; }
@keyframes toastSlideIn{ from{ opacity: 0; transform: translateX(110%); } to{ opacity: 1; transform: none; } }
@media (forced-colors: active){
  #global-spinner::before, .cd-spinner::before{ forced-color-adjust: none; background: conic-gradient(from 90deg, transparent 0 70deg, CanvasText 150deg 360deg); }
  #global-spinner::after, .paw-pop, #global-modal-window::before, .sys-toast::after{ forced-color-adjust: none; }
}

@media (prefers-reduced-motion: reduce){
  .paw-pop{ display: none; }
  #global-spinner::before, #global-spinner::after{ animation: none; }
  .cd-spinner::before{ animation-duration: 1.6s; }
  button:active{ transform: none; }
}.comment-item--reply{margin-left:44px}.comment-item--reply2{margin-left:88px}.comment-acts{display:flex;gap:10px;margin-top:3px}.comment-mini{background:none;border:0;padding:0;color:var(--muted);font:inherit;font-size:.74rem;cursor:pointer}.comment-mini:hover{color:var(--ink);text-decoration:underline}.comment-reply-form{display:flex;gap:8px;margin-top:6px;align-items:flex-start}.comment-reply-form .comment-input{flex:1}.engage-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0}.engage-fav.is-on{background:var(--accent);color:var(--accent-ink,#04120b);border-color:var(--accent)}.engage-fav .engage-count{opacity:.85;font-variant-numeric:tabular-nums}.reaction-row{display:flex;gap:8px;flex-wrap:wrap}.react-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;transition:transform .08s ease,border-color .12s ease}.react-btn:hover{transform:translateY(-1px)}.react-btn.is-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}.react-glyph{display:inline-flex;line-height:1}.react-glyph .ico{width:1.1em;height:1.1em}.react-count{font-variant-numeric:tabular-nums;min-width:1ch;text-align:center;opacity:.85}.comments-block{margin-top:22px}.comments-block h3{margin:0 0 12px}.comments-list{display:flex;flex-direction:column;gap:12px}.comment-item{display:flex;gap:12px;align-items:flex-start}.comment-avatar,.comment-avatar--none{width:40px;height:40px;border-radius:12px;flex:0 0 auto;object-fit:cover;background:var(--field);border:1px solid var(--line);display:block}.comment-avatar-link{display:block;flex:0 0 auto}.comment-main{flex:1 1 auto;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:9px 12px}.comment-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:3px}.comment-del{margin-left:auto;background:none;border:0;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:0 3px;opacity:.6}.comment-del:hover{color:var(--danger,#e5484d);opacity:1}.comment-author{font-weight:700;color:var(--ink);text-decoration:none}.comment-author:hover{color:var(--accent)}.comment-time{color:var(--muted);font-size:.82em}.comment-text{white-space:pre-wrap;overflow-wrap:anywhere}.comments-empty{color:var(--muted)}.comment-form{margin-top:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.comment-input{width:100%;box-sizing:border-box;resize:vertical}