:root,[data-theme=paper]{--bg: #faf7f2;--surface: #ffffff;--surface-2: #f3eee6;--text: #2a2622;--muted: #6f665d;--border: #e4dcd0;--accent: #b4532a;--accent-hover: #963f1b;--on-accent: #ffffff;--nav-bg: #2f2924;--nav-text: #f3ece3;--nav-hover: #4a4039;--up: #2e7d4f;--down: #b33a3a;--danger: #b33a3a;--success-bg: #e6f3ea;--error-bg: #fbeaea;--shadow: 0 1px 2px rgba(60, 40, 20, .06)}[data-theme=sage]{--bg: #f3f6f1;--surface: #ffffff;--surface-2: #e7eee3;--text: #1f2a22;--muted: #5c6b60;--border: #d5e0d2;--accent: #3f7a5a;--accent-hover: #2f5f45;--on-accent: #ffffff;--nav-bg: #24382c;--nav-text: #eef5ef;--nav-hover: #345040;--up: #2e7d4f;--down: #b33a3a;--danger: #b33a3a;--success-bg: #e3f1e6;--error-bg: #fbeaea;--shadow: 0 1px 2px rgba(20, 50, 30, .06)}[data-theme=harbor]{--bg: #f4f7fb;--surface: #ffffff;--surface-2: #e8eef6;--text: #1c2430;--muted: #5a6677;--border: #d6dfeb;--accent: #2f5f9e;--accent-hover: #234a7d;--on-accent: #ffffff;--nav-bg: #1d2b40;--nav-text: #edf2f9;--nav-hover: #2d4160;--up: #2e7d4f;--down: #b33a3a;--danger: #b33a3a;--success-bg: #e4f1e8;--error-bg: #fbeaea;--shadow: 0 1px 2px rgba(20, 30, 60, .06)}[data-theme=ink]{--bg: #16181d;--surface: #1f2228;--surface-2: #272b33;--text: #e6e3dd;--muted: #9a958c;--border: #33373f;--accent: #e0a458;--accent-hover: #f0b86f;--on-accent: #1a1a1a;--nav-bg: #0f1013;--nav-text: #e6e3dd;--nav-hover: #24262c;--up: #6fcf97;--down: #f08080;--danger: #f08080;--success-bg: #1f3329;--error-bg: #3a2224;--shadow: none}[data-theme=plum]{--bg: #1c1621;--surface: #251d2b;--surface-2: #2f2536;--text: #ece4f0;--muted: #a597ad;--border: #3c3044;--accent: #c792ea;--accent-hover: #d8acf2;--on-accent: #1c1621;--nav-bg: #130f17;--nav-text: #ece4f0;--nav-hover: #2a2130;--up: #7fd4a0;--down: #f48fa0;--danger: #f48fa0;--success-bg: #213328;--error-bg: #3d2229;--shadow: none}[data-theme=forest]{--bg: #121a16;--surface: #19231e;--surface-2: #212d27;--text: #e2ebe5;--muted: #8ea398;--border: #2c3a33;--accent: #7fc8a0;--accent-hover: #99d9b5;--on-accent: #10201a;--nav-bg: #0c120f;--nav-text: #e2ebe5;--nav-hover: #1d2823;--up: #7fd4a0;--down: #f08a8a;--danger: #f08a8a;--success-bg: #1d3327;--error-bg: #3a2324;--shadow: none}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;line-height:1.25;margin:0 0 .6em}h1{font-size:1.6rem}h2{font-size:1.3rem}h3{font-size:1.1rem}img{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.container{max-width:1120px;margin:0 auto;padding:0 16px}#root{min-height:100vh;display:flex;flex-direction:column}main.container{padding-top:20px;padding-bottom:40px;width:100%;flex:1}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.stack>*+*{margin-top:12px}.topbar{background:var(--surface-2);border-bottom:1px solid var(--border);font-size:.85rem}.topbar .container{display:flex;gap:14px;align-items:center;justify-content:flex-end;min-height:34px;flex-wrap:wrap}.topbar a,.topbar button.linklike{color:var(--muted)}.topbar a:hover{color:var(--text)}.badge{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--on-accent);font-size:.75rem;line-height:18px;text-align:center;margin-left:4px}.masthead{background:var(--surface);border-bottom:1px solid var(--border)}.masthead .container{display:flex;align-items:center;gap:12px;padding-top:14px;padding-bottom:14px}.logo{font-family:Georgia,serif;font-size:1.7rem;font-weight:700;color:var(--text);letter-spacing:-.5px}.logo span{color:var(--accent)}.logo:hover{text-decoration:none}.tagline{color:var(--muted);font-size:.9rem;font-style:italic}nav.mainnav{background:var(--nav-bg);position:sticky;top:0;z-index:20}nav.mainnav .container{display:flex;align-items:stretch}nav.mainnav .menu{display:flex;list-style:none;margin:0;padding:0}nav.mainnav .menu>li{position:relative}nav.mainnav .menu>li>a,nav.mainnav .menu>li>button{display:block;padding:11px 16px;color:var(--nav-text);font-weight:600;font-size:.9rem;letter-spacing:.08em;background:none;border:0;cursor:pointer;font-family:inherit}nav.mainnav .menu>li>a:hover,nav.mainnav .menu>li>button:hover,nav.mainnav .menu>li>a.active{background:var(--nav-hover);text-decoration:none}.dropdown{display:none;position:absolute;top:100%;left:0;min-width:180px;background:var(--surface);border:1px solid var(--border);box-shadow:0 6px 20px #00000026;list-style:none;margin:0;padding:4px 0;z-index:30}.dropdown a{display:block;padding:8px 16px;color:var(--text);font-size:.9rem;letter-spacing:.05em}.dropdown a:hover{background:var(--surface-2);text-decoration:none}li.has-dropdown:hover .dropdown,li.has-dropdown:focus-within .dropdown,li.has-dropdown.open .dropdown{display:block}.nav-search{margin-left:auto;align-self:center}.nav-search input{width:220px;padding:5px 10px;border-radius:4px;border:0;font-size:.85rem}.nav-search .suggest-list{left:auto;right:0;width:340px}nav.mainnav .menu>li.nav-search-link{display:none}nav.mainnav .menu>li.nav-search-link a{display:flex;align-items:center;height:100%}.suggest{position:relative}.toolbar-search{flex:1 1 200px;max-width:320px}.suggest-list{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:260px;max-height:60vh;overflow-y:auto;margin:0;padding:4px 0;list-style:none;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #0000002e;z-index:40;font-size:.9rem}.suggest-list li{display:flex;align-items:baseline;gap:6px;padding:7px 12px;cursor:pointer}.suggest-list li.active{background:var(--surface-2)}.suggest-list .label{font-family:Georgia,serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.suggest-list .detail{color:var(--muted);font-size:.8rem;white-space:nowrap;margin-left:auto}.suggest-list li.all{border-top:1px solid var(--border);color:var(--accent)}.suggest-list li.all .label{font-family:inherit}.suggest-list .suggest-empty{color:var(--muted);cursor:default}footer.site{border-top:1px solid var(--border);background:var(--surface-2);color:var(--muted);font-size:.875rem;padding:18px 0 26px}footer.site .container{display:flex;gap:16px;flex-wrap:wrap;align-items:center}footer.site a{color:var(--muted)}.theme-picker{display:inline-flex;gap:4px;align-items:center}.theme-swatch{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);cursor:pointer;padding:0;background:linear-gradient(135deg,var(--a) 50%,var(--b) 50%)}.theme-swatch.selected{border-color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 18px;box-shadow:var(--shadow)}.card+.card{margin-top:14px}.panel-title{font-family:Georgia,serif;font-size:1.05rem;border-bottom:2px solid var(--accent);padding-bottom:6px;margin-bottom:14px;display:flex;align-items:baseline;gap:8px}.panel-title a{margin-left:auto;font-family:system-ui,sans-serif;font-size:.85rem}.work-title{font-family:Georgia,serif;font-size:1.25rem;margin:0 0 2px}.work-title a{color:var(--text)}.work-meta{color:var(--muted);font-size:.85rem;margin-bottom:10px}.work-type-tag{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:1px 6px;border-radius:3px;background:var(--surface-2);color:var(--muted);margin-right:6px;vertical-align:2px}.work-body{font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;font-size:1.05rem;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.work-body.poem{font-style:normal}.work-picture{display:block;margin:0 auto 10px;max-height:80vh;border-radius:4px}.work-footer{display:flex;align-items:center;gap:14px;margin-top:12px;font-size:.875rem;color:var(--muted);flex-wrap:wrap}.home-columns{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px}.picture-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.picture-tile{display:block;background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow:hidden;color:var(--text)}.picture-tile:hover{text-decoration:none;border-color:var(--accent)}.picture-tile img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--surface-2)}.picture-tile .cap{padding:6px 8px;font-size:.82rem;line-height:1.3}.picture-tile .cap b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-columns .picture-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vote{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:20px;padding:1px 4px;background:var(--surface)}.vote button{border:0;background:none;cursor:pointer;color:var(--muted);font-size:1rem;width:28px;height:26px;border-radius:50%;line-height:1}.vote button:hover:not(:disabled){background:var(--surface-2)}.vote button:disabled{cursor:default;opacity:.5}.vote button.up.active{color:var(--up)}.vote button.down.active{color:var(--down)}.vote .score{min-width:26px;text-align:center;font-weight:700;color:var(--text);font-size:.9rem}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.segmented button,.segmented a{padding:5px 12px;font-size:.85rem;background:var(--surface);color:var(--text);border:0;border-right:1px solid var(--border);cursor:pointer;font-family:inherit}.segmented>:last-child{border-right:0}.segmented .active{background:var(--accent);color:var(--on-accent)}table.list{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;font-size:.92rem}table.list th,table.list td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:middle}table.list th{background:var(--surface-2);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}table.list tr:last-child td{border-bottom:0}table.list td.num,table.list th.num{text-align:right;white-space:nowrap}.title-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:8px}.title-list li{display:flex;gap:10px;padding:7px 12px;border-bottom:1px solid var(--border);align-items:baseline}.title-list li:last-child{border-bottom:0}.title-list .t{flex:1;min-width:0;font-family:Georgia,serif}.title-list .meta{color:var(--muted);font-size:.82rem;white-space:nowrap}.pagination{display:flex;gap:4px;justify-content:center;margin:20px 0 0;flex-wrap:wrap}.pagination a,.pagination span{padding:4px 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface);font-size:.875rem}.pagination .current{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.pagination .gap{border:0;background:none}.avatar{border-radius:50%;object-fit:cover;background:var(--surface-2);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700;font-family:Georgia,serif;vertical-align:middle}.userlink{display:inline-flex;align-items:center;gap:6px;font-weight:600}.role-tag{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;padding:1px 5px;border-radius:3px;background:var(--accent);color:var(--on-accent);margin-left:6px;vertical-align:2px}.profile-head{display:flex;gap:18px;align-items:flex-start}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat{background:var(--surface-2);border-radius:6px;padding:10px;text-align:center}.stat .n{font-size:1.3rem;font-weight:700;font-family:Georgia,serif}.stat .l{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:0;font-size:.92rem}dl.facts dt{color:var(--muted)}dl.facts dd{margin:0}.form{max-width:560px}.form.wide{max-width:820px}label{display:block;font-weight:600;font-size:.9rem;margin-bottom:4px}.field{margin-bottom:14px}.field .hint{font-size:.8rem;color:var(--muted);margin-top:3px;font-weight:400}.field .error{font-size:.85rem;color:var(--danger);margin-top:3px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit}textarea{min-height:120px;resize:vertical}textarea.writing{font-family:Georgia,serif;font-size:1.02rem;line-height:1.6;min-height:320px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.checkbox{display:flex;gap:8px;align-items:flex-start;font-weight:400}.checkbox input{margin-top:4px}.btn{display:inline-block;padding:7px 16px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font:inherit;font-weight:600;font-size:.92rem;cursor:pointer;text-decoration:none;line-height:1.4}.btn:hover{background:var(--accent-hover);text-decoration:none}.btn:disabled{opacity:.6;cursor:default}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn.secondary:hover{background:var(--surface-2)}.btn.danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}.btn.small{padding:3px 10px;font-size:.82rem}button.linklike{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit}button.linklike:hover{text-decoration:underline}button.linklike.danger{color:var(--danger)}.alert{padding:10px 14px;border-radius:6px;margin-bottom:14px;font-size:.92rem}.alert.error{background:var(--error-bg);color:var(--danger)}.alert.success{background:var(--success-bg)}.alert.info{background:var(--surface-2)}.comment{padding:12px 0;border-bottom:1px solid var(--border)}.comment:last-child{border-bottom:0}.comment .head{display:flex;gap:10px;align-items:center;font-size:.85rem;color:var(--muted);margin-bottom:4px;flex-wrap:wrap}.text-body{white-space:pre-wrap;overflow-wrap:anywhere}.post{display:grid;grid-template-columns:140px minmax(0,1fr);background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden}.post .side{background:var(--surface-2);padding:12px;text-align:center;font-size:.85rem;border-right:1px solid var(--border)}.post .side .avatar{margin-bottom:6px}.post .main{padding:12px 16px;min-width:0}.post .main .head{font-size:.8rem;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}.forum-cat{display:flex;gap:16px;align-items:center}.forum-cat .info{flex:1;min-width:0}.forum-cat .counts{text-align:right;font-size:.85rem;color:var(--muted);white-space:nowrap}.messages-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;min-height:60vh}.convo-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;align-self:start}.convo-list a{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text)}.convo-list a:hover,.convo-list a.active{background:var(--surface-2);text-decoration:none}.convo-list .preview{font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:8px;height:70vh;min-height:400px}.chat .head{padding:10px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.chat .log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:6px}.bubble{max-width:75%;padding:7px 12px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.95rem}.bubble.mine{align-self:flex-end;background:var(--accent);color:var(--on-accent);border-bottom-right-radius:4px}.bubble.theirs{align-self:flex-start;background:var(--surface-2);border-bottom-left-radius:4px}.bubble .time{display:block;font-size:.7rem;opacity:.7;margin-top:2px}.chat form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border)}.chat textarea{min-height:42px;height:42px;resize:none}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tabs a,.tabs button{padding:8px 14px;border:0;background:none;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tabs .active{color:var(--text);border-bottom-color:var(--accent)}.doc{max-width:760px}.doc h1{font-size:1.8rem}.doc h2{margin-top:1.4em}.doc p,.doc li{line-height:1.7}.mobile-only{display:none}@media (max-width: 860px){.home-columns{grid-template-columns:minmax(0,1fr);gap:8px}.home-columns>section:last-child{order:-1}.home-columns .picture-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:8px}.home-columns .picture-tile{flex:0 0 140px;scroll-snap-align:start}.messages-layout{grid-template-columns:1fr}.messages-layout.in-convo .convo-list{display:none}.messages-layout:not(.in-convo) .chat-col{display:none}.nav-search{display:none}nav.mainnav .menu>li.nav-search-link{display:block}}@media (max-width: 640px){body{font-size:15px}.masthead .container{padding-top:10px;padding-bottom:10px}.logo{font-size:1.35rem}.topbar .container{gap:10px;flex-wrap:nowrap}.theme-picker{gap:3px}.theme-swatch{width:15px;height:15px}.tagline{display:none}nav.mainnav .menu>li>a,nav.mainnav .menu>li>button{padding:10px 11px;font-size:.8rem;letter-spacing:.04em}.card{padding:14px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-head{flex-direction:column;align-items:center;text-align:center}.post{grid-template-columns:1fr}.post .side{border-right:0;border-bottom:1px solid var(--border);display:flex;gap:8px;align-items:center;text-align:left;padding:8px 12px}.post .side .avatar{margin-bottom:0;width:30px!important;height:30px!important;font-size:14px!important}.hide-sm{display:none}.mobile-only{display:initial}table.list th,table.list td{padding:6px 7px}.work-body{font-size:1rem}}
