@font-face{font-family:Sora;src:url(/fonts/sora-var.woff2) format("woff2");font-weight:100 800;font-display:swap}@font-face{font-family:Spline Sans Mono;src:url(/fonts/spline-sans-mono-var.woff2) format("woff2");font-weight:300 700;font-display:swap}:root{--paper: #FCFAF5;--card: #FFFFFF;--ink: #26221B;--muted: #8C8271;--soft: #55503F;--line: #EAE4D8;--line-strong: #26221B;--accent: #D96D00;--accent-down: #B45A00;--dashed: #DCD3C2;--faded: #A99C85;--icon-a: #26221B;--icon-b: #D96D00;--icon-letter: #FCFAF5;--sans: "Sora", "Segoe UI", system-ui, sans-serif;--mono: "Spline Sans Mono", ui-monospace, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #1B1712;--card: #241E16;--ink: #EFE8DC;--muted: #9C9080;--soft: #C7BDAD;--line: #322A1F;--line-strong: #EFE8DC;--accent: #FFA239;--accent-down: #FFB35E;--dashed: #45392A;--faded: #7E715C;--icon-a: #EFE8DC;--icon-b: #FFA239;--icon-letter: #1B1712}}:root[data-theme=dark]{--paper: #1B1712;--card: #241E16;--ink: #EFE8DC;--muted: #9C9080;--soft: #C7BDAD;--line: #322A1F;--line-strong: #EFE8DC;--accent: #FFA239;--accent-down: #FFB35E;--dashed: #45392A;--faded: #7E715C;--icon-a: #EFE8DC;--icon-b: #FFA239;--icon-letter: #1B1712}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,select{font:inherit}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-down)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.shell{min-height:100dvh;display:flex;flex-direction:column}.content{flex:1;width:100%;max-width:920px;margin:0 auto;padding:20px 20px calc(76px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px}.topbar{display:flex;align-items:baseline;justify-content:space-between}.brand{font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--ink)}.brand span{color:var(--accent)}.topbar .meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.05em}.topnav{display:none;gap:26px;font-size:14px}.topnav button{color:var(--muted)}.topnav button.active{color:var(--ink);font-weight:600;border-bottom:2px solid var(--accent);padding-bottom:2px}.section-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.section-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}.section-label .hot{color:var(--accent)}.fav-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.fav-tile{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:13px 4px 11px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--soft);font-size:11.5px;text-align:center;min-height:44px;-webkit-tap-highlight-color:transparent}.fav-tile .label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-tile.add{border-style:dashed;border-color:var(--dashed);background:none;color:var(--faded)}.fav-tile.add .plus{width:38px;height:38px;border-radius:50%;border:2px dashed var(--dashed);display:flex;align-items:center;justify-content:center;font-size:18px}.fav-tile.dragging{opacity:.4}.circle-icon{border-radius:50%;color:var(--icon-letter);font-weight:700;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.rule{border-bottom:1.5px solid var(--line-strong);padding-bottom:9px}.art{padding:14px 0;border-bottom:1px solid var(--line)}.art .title{font-weight:600;font-size:14.5px;line-height:1.45;cursor:pointer}.art.read .title{color:var(--muted);font-weight:500}.art .meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:4px;letter-spacing:.04em}.art .meta .time{color:var(--accent)}.art.read .meta .time{color:var(--muted)}.art .actions{display:flex;gap:18px;margin-top:10px;font-size:12.5px}.art .actions button,.art .actions a{color:var(--muted);font-weight:600;min-height:32px}.art .actions .on{color:var(--accent)}.art .body{margin-top:12px;font-size:14.5px;line-height:1.65;color:var(--soft);overflow-wrap:break-word}.art .body img{max-width:100%;height:auto;border-radius:8px}.art .body pre{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;font-size:12.5px}.art .body a{color:var(--accent)}.art .body blockquote{margin:0 0 0 2px;padding-left:14px;border-left:3px solid var(--line);color:var(--muted)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:600;color:var(--soft);min-height:32px}.chip.on{border-color:var(--accent);color:var(--accent)}.bm-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.bm-row .info{flex:1;min-width:0}.bm-row .info .label{font-weight:600;font-size:14px}.bm-row .info .url{font-family:var(--mono);font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bm-row .fav-star{color:var(--dashed);font-size:16px;min-width:36px;min-height:36px}.bm-row .fav-star.on{color:var(--accent)}.iconbtn{color:var(--muted);min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.field{display:flex;flex-direction:column;gap:6px}.field label{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.field input,.field select{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:15px;width:100%}.field input:focus{border-color:var(--accent);outline:none}.btn{background:var(--accent);color:#fcfaf5;border-radius:10px;padding:12px 18px;font-weight:600;font-size:14.5px;min-height:44px}:root[data-theme=dark] .btn{color:#1b1712}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn{color:#1b1712}}.btn:hover{background:var(--accent-down)}.btn.ghost{background:none;color:var(--accent);border:1px solid var(--accent)}.btn.quiet{background:none;color:var(--muted);border:1px solid var(--line)}.btn:disabled{opacity:.5;cursor:default}.sheet-back{position:fixed;inset:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{background:var(--paper);border:1px solid var(--line);border-radius:18px 18px 0 0;width:100%;max-width:560px;padding:20px 20px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.sheet h3{margin:0;font-size:16px}.sheet .row{display:flex;gap:10px;justify-content:flex-end}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--card);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--faded);font-size:10px;font-weight:500;min-height:48px;justify-content:center}.tabbar button.active{color:var(--accent);font-weight:600}.tabbar svg{stroke:currentColor}.empty{text-align:center;color:var(--muted);padding:40px 16px;font-size:14px}.error-note{color:#b3363c;font-size:13px}:root[data-theme=dark] .error-note{color:#e4737a}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .error-note{color:#e4737a}}.spinner{width:18px;height:18px;border-radius:50%;margin:24px auto;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px}.login-card .brand{font-size:24px;text-align:center;margin-bottom:8px}.login-card .note{font-size:12px;color:var(--muted);text-align:center}@media(min-width:760px){.content{padding:40px 32px 60px;gap:34px}.topnav{display:flex}.tabbar{display:none}.fav-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:12px}.fav-tile{padding:18px 8px 14px;font-size:12.5px}.art .title{font-size:15.5px}.sheet-back{align-items:center}.sheet{border-radius:18px}}.art.sel{margin-left:-16px;padding-left:16px;box-shadow:inset 3px 0 0 var(--accent)}.kbd-hint{display:none}@media(min-width:760px){.kbd-hint{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--faded);text-align:center;padding:18px 0 4px}}.circle-icon.frame{background:var(--card);border:1px solid var(--line);overflow:hidden}.circle-icon.frame img{border-radius:4px;object-fit:contain}.swipe-wrap{position:relative;overflow:hidden}.swipe-hint{position:absolute;inset:0;display:flex;align-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--muted);background:var(--card)}.swipe-hint.right{justify-content:flex-start;padding-left:18px}.swipe-hint.left{justify-content:flex-end;padding-right:18px}.swipe-hint.armed{color:var(--accent);font-weight:700}.swipe-wrap .art{position:relative}.day-head{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);padding:18px 0 4px;border-bottom:1px solid var(--line)}.group-input{width:90px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12px;font-family:var(--mono)}.palette-back{position:fixed;inset:0;background:#00000059;z-index:30;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 0}.palette{width:100%;max-width:560px;background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 18px 50px #00000040}.palette input{width:100%;border:none;outline:none;background:var(--paper);color:var(--ink);padding:16px 18px;font:inherit;font-size:16px;border-bottom:1px solid var(--line);box-sizing:border-box}.palette-list{max-height:340px;overflow-y:auto;padding:6px}.palette-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:9px;text-align:left;min-height:44px}.palette-item.sel{background:var(--card);box-shadow:inset 2px 0 0 var(--accent)}.palette-glyph{width:24px;text-align:center;color:var(--muted);flex:0 0 auto}.palette-label{font-weight:600;font-size:14px;white-space:nowrap}.palette-url{font-family:var(--mono);font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.art .thumb{float:right;width:92px;height:52px;object-fit:cover;border-radius:8px;margin:0 0 6px 12px;border:1px solid var(--line)}
