:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 999px;--control-h: 36px;--accent: #ff6a3d;--accent-ink: #ffffff;--bg: #f4f5f7;--surface: #ffffff;--surface-2: #f0f1f4;--border: #e3e5ea;--ink: #14161a;--ink-2: #565b66;--ink-3: #868d99;--rail: #d7dae1;--shadow: 0 1px 2px rgba(16, 18, 22, .06), 0 4px 16px rgba(16, 18, 22, .06);--maxw: 1200px}@media(prefers-color-scheme:dark){:root{--bg: #0b0c0f;--surface: #15171c;--surface-2: #1c1f26;--border: #262a32;--ink: #eef0f4;--ink-2: #aab0bb;--ink-3: #757c89;--rail: #313640;--accent: #ff7a52;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}.linklike{background:none;border:none;padding:0;color:inherit;text-align:left}.linklike:hover{text-decoration:underline}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top)}.topbar-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4)}.brand{display:inline-flex;align-items:center;gap:var(--sp-2);background:none;border:none;color:var(--ink);font-weight:700;font-size:var(--fs-md)}.brand-mark{display:inline-grid;place-items:center;width:var(--control-h);height:var(--control-h);border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-sm);font-weight:800;letter-spacing:-.5px}.brand-name{letter-spacing:-.2px}.search{flex:1;min-width:0}.search input{width:100%;height:var(--control-h);padding:0 var(--sp-3);font-size:var(--fs-sm);color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);outline:none;box-sizing:border-box}.search input:focus{border-color:var(--accent)}.topbar-actions{display:flex;align-items:center;gap:var(--sp-2)}.view-toggle{display:inline-flex;align-items:center;height:var(--control-h);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);padding:2px;box-sizing:border-box}.view-toggle button{display:inline-flex;align-items:center;height:100%;border:none;background:none;color:var(--ink-2);font-size:var(--fs-xs);font-weight:600;padding:0 var(--sp-3);border-radius:var(--radius-pill)}.view-toggle button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-2);color:var(--ink-2)}.icon-btn[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.tabs{max-width:var(--maxw);margin:0 auto;display:flex;gap:var(--sp-1);padding:0 var(--sp-3) var(--sp-2);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;border:none;background:none;color:var(--ink-3);font-size:var(--fs-sm);font-weight:600;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);white-space:nowrap}.tab.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.content{flex:1;width:100%;max-width:var(--maxw);margin:0 auto;background:var(--surface);padding:var(--sp-3) var(--sp-4);padding-bottom:calc(var(--sp-5) + env(safe-area-inset-bottom))}@media(min-width:800px){.content{border-left:1px solid var(--border);border-right:1px solid var(--border);min-height:70vh;padding-left:var(--sp-5);padding-right:var(--sp-5)}}.panel-title{font-size:var(--fs-lg);margin:0 0 var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}.banner{border-radius:var(--radius-md);padding:var(--sp-3);margin-bottom:var(--sp-3);font-size:var(--fs-sm)}.banner-error{background:color-mix(in srgb,#e5484d 14%,transparent);color:#e5484d}.banner-ok{background:color-mix(in srgb,#30a46c 16%,transparent);color:#2b8a5b}.empty,.loading{color:var(--ink-3);text-align:center;padding:var(--sp-5) 0}.cards{display:flex;flex-direction:column}.story{padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.story:last-child{border-bottom:none}.story:hover{background:var(--surface-2)}.story-title{margin:0;font-size:var(--fs-base);font-weight:600;line-height:1.3;letter-spacing:-.1px}.story-title a:hover,.story-title .linklike:hover{color:var(--accent)}.story-domain{margin-left:var(--sp-2);color:var(--ink-3);font-weight:400;font-size:var(--fs-sm)}.story-domain.linklike:hover{color:var(--accent)}.story-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:2px;color:var(--ink-3);font-size:var(--fs-xs)}.m-points{color:var(--accent);font-weight:700}.m-author,.m-comments{color:var(--ink-2);font-weight:600}.m-comments:hover{color:var(--accent)}.card{display:flex;align-items:stretch;gap:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);box-shadow:var(--shadow);transition:transform .12s ease,border-color .12s ease}.card:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.card-body{flex:1;min-width:0}.card-title{margin:0 0 var(--sp-2);font-size:var(--fs-lg);font-weight:650;line-height:1.3;letter-spacing:-.2px}.card-title a:hover,.card-title .linklike:hover{color:var(--accent)}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);color:var(--ink-3);font-size:var(--fs-xs)}.meta-points{color:var(--accent);font-weight:700}.meta-author{color:var(--ink-2);font-weight:600}.meta-domain{background:var(--surface-2);border-radius:var(--radius-pill);padding:1px var(--sp-2)}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:var(--sp-1);margin:var(--sp-2) 0 0;padding:0}.tag{font-size:.6875rem;color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius-pill);padding:1px var(--sp-2)}.card-actions{display:flex;align-items:center}.comments-btn{display:inline-flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink-2);border-radius:var(--radius-md);padding:var(--sp-2);font-size:var(--fs-xs);font-weight:600;min-width:52px}.comments-btn:hover{color:var(--accent);border-color:var(--accent)}.points-filter{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3);font-size:var(--fs-sm);color:var(--ink-2)}.points-filter input[type=range]{flex:1;accent-color:var(--accent)}.points-filter output{font-weight:700;color:var(--accent);min-width:3ch;text-align:right}.day-group{margin-bottom:var(--sp-4)}.day-heading{position:sticky;top:0;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:0 0 var(--sp-2);padding:var(--sp-1) 0}.rows{list-style:none;margin:0;padding:0}.row{display:grid;grid-template-columns:3ch minmax(0,1fr) auto 4ch;align-items:baseline;column-gap:var(--sp-3);padding:var(--sp-1) 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.row:last-child{border-bottom:none}.row:hover{background:var(--surface-2)}.row-points{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;text-align:right}.row-main{min-width:0;display:flex;align-items:baseline;gap:var(--sp-2);overflow:hidden}.row-title{min-width:0;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-title:hover{color:var(--accent)}.row-domain{flex:0 0 auto;color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap}.row-domain.linklike:hover{color:var(--accent)}.row-age{color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap;text-align:right}.row-comments{border:none;background:none;color:var(--ink-2);font-size:var(--fs-xs);font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.row-comments:hover{color:var(--accent)}.feed-sentinel{height:1px}.leftoff{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;color:var(--accent);font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.leftoff:before,.leftoff:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--accent) 40%,var(--border))}.leftoff-label{flex:0 0 auto}.leftoff-row{display:block;padding:0 var(--sp-3)}.author-link{cursor:pointer}.author-link:hover{color:var(--accent);text-decoration:none}.back-btn{border:none;background:none;color:var(--ink-2);font-weight:600;padding:var(--sp-2) 0;margin-bottom:var(--sp-2)}.thread-header{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-4);box-shadow:var(--shadow)}.thread-title{margin:0 0 var(--sp-2);font-size:var(--fs-xl);line-height:1.25;letter-spacing:-.3px}.thread-text{margin-top:var(--sp-3);color:var(--ink-2);font-size:var(--fs-base)}.thread-text a,.comment-text a{color:var(--accent)}.comment-tree,.comment-children{list-style:none;margin:0;padding:0}.comment{position:relative;margin-left:calc(var(--depth, 0) * var(--sp-4));padding-left:var(--sp-3);margin-top:var(--sp-3)}.comment-rail{position:absolute;left:0;top:4px;bottom:0;width:11px;margin:0;padding:0;border:none;background:none;cursor:pointer}.comment-rail:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;border-radius:var(--radius-pill);background:var(--rail);transition:width .1s ease,background-color .1s ease}.comment[data-depth="0"]>.comment-rail:before{background:var(--accent)}.comment-rail:hover:before,.comment-rail:focus-visible:before{width:3px;background:var(--accent)}.comment-body{min-width:0}.comment-meta{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-3);margin-bottom:var(--sp-1)}.comment-author{font-weight:650;color:var(--ink-2)}.collapse-btn{border:none;background:none;color:var(--ink-3);font-size:var(--fs-xs);font-family:ui-monospace,monospace;padding:0}.comment-text{font-size:var(--fs-base);color:var(--ink);overflow-wrap:anywhere}.comment-text p{margin:var(--sp-2) 0}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:var(--radius-pill);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.btn:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.btn:disabled{opacity:.55;cursor:default}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-accent:hover{border-color:var(--accent);filter:brightness(1.05)}.account{position:relative}.avatar-btn{border:none;background:none;padding:0;border-radius:var(--radius-pill);line-height:0}.avatar{display:inline-grid;place-items:center;width:var(--control-h);height:var(--control-h);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--accent) 18%,var(--surface-2));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));font-size:var(--fs-xs);font-weight:800;letter-spacing:.3px}.avatar-btn[aria-expanded=true] .avatar{background:var(--accent);color:var(--accent-ink)}.avatar-lg{width:44px;height:44px;font-size:var(--fs-sm)}.popover{position:absolute;top:calc(100% + var(--sp-2));right:0;z-index:30;width:min(320px,calc(100vw - var(--sp-4) * 2));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--sp-4)}.account-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.account-id{display:flex;flex-direction:column;min-width:0}.account-sub{color:var(--ink-3);font-size:var(--fs-xs)}.field{display:block;margin-bottom:var(--sp-3)}.field-label{display:block;font-size:var(--fs-xs);color:var(--ink-3);margin-bottom:var(--sp-1)}.field input,.chip-add input{width:100%;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.field input:focus,.chip-add input:focus{border-color:var(--accent)}.account-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.account-note{margin:var(--sp-3) 0 var(--sp-1);color:var(--ink-3);font-size:var(--fs-xs)}.account-owner{display:block;font-family:ui-monospace,monospace;font-size:.6875rem;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.follow-group{margin-top:var(--sp-4)}.follow-group:first-of-type{margin-top:var(--sp-3)}.follow-title{margin:0 0 var(--sp-2);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.follow-help{margin:0 0 var(--sp-2);color:var(--ink-3);font-size:var(--fs-xs)}.chip-add{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-2)}.chip-add input{flex:1;min-width:0}.chips{list-style:none;display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0;padding:0}.chip{display:inline-flex;align-items:center;gap:var(--sp-1);background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-pill);padding:2px var(--sp-2) 2px var(--sp-3);font-size:var(--fs-xs);font-weight:600}.chip-x{border:none;background:none;color:var(--ink-3);font-size:var(--fs-md);line-height:1;padding:0 2px}.chip-x:hover{color:var(--accent)}.alert-list{list-style:none;margin:0;padding:0}.alert-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.alert-row:last-child{border-bottom:none}.alert-keywords{font-size:var(--fs-sm);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis}.empty.small{text-align:left;padding:var(--sp-1) 0 var(--sp-2);font-size:var(--fs-xs)}.home-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow);text-align:center}.home-empty-title{margin:0 0 var(--sp-2);font-size:var(--fs-xl);letter-spacing:-.3px}.home-empty-text{margin:0 auto var(--sp-4);max-width:42ch;color:var(--ink-2);font-size:var(--fs-base)}.home-empty-add{max-width:420px;margin:0 auto var(--sp-3)}.home-empty-more{color:var(--accent);font-size:var(--fs-sm);font-weight:600}.badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-xs);font-weight:700}.notification-list{list-style:none;margin:0;padding:0}.notification{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.notification:last-child{border-bottom:none}.notification.unread{font-weight:600}.notification.unread:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);flex:0 0 auto;margin-right:var(--sp-1)}.notification-age{color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap}.page-title{margin:var(--sp-2) 0 var(--sp-1);font-size:var(--fs-xl);letter-spacing:-.3px}.page-sub{margin:0 0 var(--sp-4);color:var(--ink-3);font-size:var(--fs-sm)}.following-page{padding-bottom:var(--sp-4)}.profile-head{padding:var(--sp-2) 0 var(--sp-4);border-bottom:1px solid var(--border);margin-bottom:var(--sp-3)}.profile-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.profile-name{margin:0;font-size:var(--fs-xl);letter-spacing:-.3px}.profile-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-top:var(--sp-2);color:var(--ink-3);font-size:var(--fs-xs)}.profile-karma{color:var(--accent);font-weight:700}.profile-about{margin-top:var(--sp-3);color:var(--ink-2);font-size:var(--fs-base);overflow-wrap:anywhere}.profile-about a{color:var(--accent)}.profile-subs-title{margin:0 0 var(--sp-1);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.follow-btn{flex:0 0 auto;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-pill);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.follow-btn:hover{filter:brightness(1.05)}.follow-btn.is-following{background:var(--surface-2);color:var(--ink-2);border-color:var(--border)}.follow-btn.is-following:hover{filter:none;border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--accent)}.follow-btn:disabled{opacity:.6;cursor:default}.account-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-nav{display:flex;flex-direction:column;gap:2px}.menu-item{display:block;width:100%;text-align:left;border:none;background:none;color:var(--ink);font-size:var(--fs-sm);font-weight:600;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm)}.menu-item:hover{background:var(--surface-2);color:var(--accent)}.menu-item-danger{color:var(--ink-2);margin-top:var(--sp-1);border-top:1px solid var(--border);border-radius:0}.menu-item-danger:hover{color:#e5484d;background:color-mix(in srgb,#e5484d 10%,transparent)}.signin-title{margin:0 0 var(--sp-1);font-size:var(--fs-lg);letter-spacing:-.2px}.signin-note{margin:0 0 var(--sp-3);color:var(--ink-3);font-size:var(--fs-sm)}.signin-form{display:flex;flex-direction:column;gap:var(--sp-2)}.signin-form input{width:100%;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.signin-form input:focus{border-color:var(--accent)}.signin-form .btn-accent{width:100%}.signin-sent{margin:0;color:var(--accent);font-size:var(--fs-sm);font-weight:600}.signin-error{margin:var(--sp-2) 0 0;color:#e5484d;font-size:var(--fs-xs)}.signin-compact .signin-title{font-size:var(--fs-md)}.signin-gate{max-width:420px;margin:var(--sp-5) auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow)}.notifications-page,.domain-page,.account-page{padding-bottom:var(--sp-4)}.page-title-row{display:flex;align-items:center;gap:var(--sp-2)}.domain-head{margin-bottom:var(--sp-3)}.domain-eyebrow{display:block;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:700}.domain-head .page-title{margin:2px 0 0}.account-detail{display:flex;flex-direction:column;gap:var(--sp-4);align-items:flex-start}.account-field{display:flex;flex-direction:column;gap:var(--sp-1)}.account-page .account-email{font-size:var(--fs-md)}.hn-link{width:100%;max-width:520px;padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.section-title{font-size:var(--fs-md);font-weight:700;margin:0 0 var(--sp-3)}.hn-intro,.hn-instructions,.hn-status,.hn-hint{font-size:var(--fs-sm);color:var(--ink-2);margin:0 0 var(--sp-3)}.hn-hint{color:var(--ink-3)}.hn-claim-row{display:flex;gap:var(--sp-2)}.hn-username-input{flex:1;min-width:0;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.hn-username-input:focus{border-color:var(--accent)}.hn-token{display:block;padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-sm);color:var(--ink);background:var(--surface);border:1px dashed var(--accent);border-radius:var(--radius-sm);user-select:all;word-break:break-all}.hn-actions{display:flex;align-items:center;gap:var(--sp-3)}.verified-badge{color:#2b8a5b;font-weight:700;font-size:var(--fs-xs)}.bang-hint{margin:0 0 var(--sp-3);color:var(--ink-3);font-size:var(--fs-xs)}.bang-hint code{font-family:ui-monospace,monospace;color:var(--accent);font-weight:700}@media(min-width:600px){.story-title{font-size:var(--fs-md)}}@media(max-width:560px){.brand{gap:0}.topbar-inner{flex-wrap:nowrap;gap:var(--sp-2)}.search{flex:1;min-width:0}.view-toggle{display:none}.content{padding:var(--sp-3) var(--sp-3)}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
