.os-bar nav a{display:inline-flex;align-items:center}
body{--card:var(--field);--lead:var(--muted);--rule:var(--line);--seal:var(--ink);--pen:var(--ink);--song:var(--ui);--kai:var(--ui)}
body[data-page="home"] #content{display:grid;place-items:center;padding:32px 20px}
.home-tagline{margin:0;color:var(--muted);font:14px/2 var(--ui);letter-spacing:.08em;text-align:center;text-wrap:balance}
body[data-page="journal"] #content,body[data-page="clip"] #content{position:relative}
#os-toast{z-index:110}
.os-brand:focus-visible{outline-offset:-3px}
.load-state{grid-column:1/-1;padding:70px 20px;text-align:center;color:var(--muted)}
.load-state p{margin:8px 0 18px}
.file-art img.cover-missing,.review-cover img.cover-missing,.table-title img.cover-missing,.detail-art img.cover-missing{visibility:hidden}
.progress-section:has(.progress-drawer:empty){display:none}
.form-error{color:var(--ink);font-size:12px;min-height:22px;margin-top:10px;overflow-wrap:anywhere}
#gate{position:fixed;inset:0;z-index:105;display:none;align-items:center;justify-content:center;background:#27272277;padding:20px}
#gate.on{display:flex}
#gate .box{width:330px;max-width:100%;padding:28px;background:var(--paper);border:2px solid var(--ink);border-radius:0;box-shadow:4px 4px 0 #575750;text-align:center}
#gate h2{font:600 19px/1.6 var(--ui);letter-spacing:.03em;margin:0 0 17px}
#gate .row{display:flex;gap:8px;justify-content:center}
#gate input{min-width:0;flex:1;width:150px;font:16px/1.5 var(--mono);letter-spacing:.16em;text-align:center;padding:9px 8px;border:1px solid var(--strong);border-radius:0;background:var(--field);color:var(--ink)}
#gate .go{font:13px var(--ui);min-height:42px;padding:0 15px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);cursor:pointer}
#gate .err{font:12px/1.6 var(--ui);color:var(--ink);min-height:20px;margin-top:12px}
#gate .gate-close{margin-top:14px;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:3px}
.archive-window[hidden]{display:none!important}
.clip-progress{display:flex;gap:10px;align-items:center;margin-top:12px;font-size:11px;color:var(--muted)}
.clip-progress .track{flex:1;height:7px;border:1px solid var(--line);background:var(--field)}
.clip-progress .fill{height:100%;background:var(--ink);width:0}
.clip-progress .pct{min-width:65px;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:10px var(--mono)}
#list .clip-text-body{white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto}
#list .clip-image{display:block;margin:10px 0}
#list .clip-image img{max-height:280px;max-width:100%;object-fit:contain;border:1px solid var(--line)}
#list .clip-actions a{font-size:11px;color:var(--muted);padding:6px 0;min-height:32px}
#list .attached-file b{overflow-wrap:anywhere;white-space:normal}
#list .load-state{padding:40px 10px}
#ta{width:100%;height:196px;resize:vertical}
#send{min-width:116px}
.clip-drop{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:#27272299;padding:20px;pointer-events:none}
.clip-drop.on{display:flex}
.clip-drop .box{padding:40px;border:2px dashed var(--ink);background:var(--paper);font-size:18px}
#clip-errors{margin-top:10px}
body[data-page="journal"] .feed{max-width:900px;margin:0 auto;padding:0 0 28px}
body[data-page="journal"] .moment{position:relative;padding:25px 0 28px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;margin:0}
body[data-page="journal"] .moment.hl{background:var(--panel);outline:1px solid var(--strong);outline-offset:8px}
body[data-page="journal"] .moment .head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
body[data-page="journal"] .moment .date{font:11px var(--mono);color:var(--muted)}
body[data-page="journal"] .moment .place{font-size:11px;color:var(--muted)}
body[data-page="journal"] .moment .place::before{content:"⌖ ";font-family:var(--mono)}
body[data-page="journal"] .moment .head .sp{flex:1}
body[data-page="journal"] .moment .head .op{font-size:11px;color:var(--muted);padding:5px 4px;min-height:28px}
body[data-page="journal"] .monthstamp{display:flex;align-items:center;gap:12px;margin:20px 0 0}
body[data-page="journal"] .monthstamp .m{font:13px var(--mono);color:var(--ink);letter-spacing:.02em}
body[data-page="journal"] .monthstamp .line{flex:1;border-top:1px solid var(--line)}
body[data-page="journal"] .monthstamp .n{font:10px var(--mono);color:var(--muted)}
body[data-page="journal"] .body{font:14px/1.95 var(--ui);color:var(--ink)}
body[data-page="journal"] .body h1,body[data-page="journal"] .body h2{font-size:20px;letter-spacing:-.02em}
body[data-page="journal"] .body h3{font-size:16px;letter-spacing:0}
body[data-page="journal"] .body blockquote{font:14px/1.9 var(--ui);color:var(--muted)}
body[data-page="journal"] .body a{text-decoration:underline;text-underline-offset:3px}
body[data-page="journal"] .body img{height:auto;max-width:100%}
body[data-page="journal"] .body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}
body[data-page="journal"] .body th,body[data-page="journal"] .body td{border:1px solid var(--line);padding:5px 8px}
body[data-page="journal"] .grid,body[data-page="journal"] .mfig img,body[data-page="journal"] .mfig video{border-radius:0}
body[data-page="journal"] .grid{border:1px solid var(--line);background:var(--panel);padding:4px;gap:4px}
body[data-page="journal"] .mfig img,body[data-page="journal"] .mfig video{border:1px solid var(--line);padding:4px;background:var(--panel)}
body[data-page="journal"] .mfig figcaption{font:11px/1.7 var(--ui);color:var(--muted)}
body[data-page="journal"] .archive{display:none}
body[data-page="journal"] .journal-search-button{flex:none;min-width:48px;white-space:nowrap;font-size:11px;padding:0 9px;height:100%;border-left:1px solid var(--line)}
body[data-page="journal"] .travel-toolbar .search-box input{flex:1;min-width:0;width:0}
body[data-page="journal"] #mapwrap{display:none;position:relative;height:calc(100svh - 280px);min-height:390px;border:1px solid var(--line);margin-top:18px;isolation:isolate}
body[data-page="journal"] #map{position:absolute;inset:0;background:#e8e8dc}
body[data-page="journal"] #maploading{font:13px var(--ui);background:#e8e8dc}
body[data-page="journal"] .leaflet-popup-content-wrapper,body[data-page="journal"] .leaflet-popup-tip{border-radius:0;background:var(--paper);box-shadow:2px 2px #575750}
body[data-page="journal"] .seal-pin,body[data-page="journal"] .seal-cluster{background:#45453c;border-color:var(--paper);box-shadow:1px 1px 0 #575750}
body[data-page="journal"] .leaflet-popup-content button{margin-top:8px;font-size:12px;text-decoration:underline;text-underline-offset:3px}
body[data-page="journal"] .leaflet-control{z-index:10}
body[data-page="journal"] #composer{z-index:101;background:#27272277;align-items:center;padding:20px}
body[data-page="journal"] #composer .panel{max-width:780px;max-height:88svh;padding:24px;background:var(--paper);border:2px solid var(--ink);border-radius:0;box-shadow:4px 4px 0 #575750}
body[data-page="journal"] #composer h3{font:600 18px var(--ui);letter-spacing:.02em}
body[data-page="journal"] .iconbtn{font:12px var(--ui);padding:7px 12px;min-height:34px;border:1px solid var(--strong);border-radius:0;background:var(--field);color:var(--ink);box-shadow:1px 1px var(--strong)}
body[data-page="journal"] .iconbtn.primary{background:var(--ink);color:var(--paper)}
body[data-page="journal"] .etabs,body[data-page="journal"] .tools button,body[data-page="journal"] .mchip .thumb,body[data-page="journal"] .mchip .cap,body[data-page="journal"] .mchip .ops button,body[data-page="journal"] #composer textarea,body[data-page="journal"] #cpreview{border-radius:0}
body[data-page="journal"] .tools button{min-height:30px}
body[data-page="journal"] #composer textarea{font:14px/1.8 var(--ui);background:var(--field)}
body[data-page="journal"] .mchip .ops button{min-height:28px}
body[data-page="journal"] #lightbox{z-index:104}
body[data-page="journal"] #lightbox .x,body[data-page="journal"] #lightbox .nav{border:0;background:none;color:white}
body[data-page="journal"] #lightbox .x{min-width:44px;min-height:44px}
body[data-page="journal"] #lbslot{max-width:96vw}
body[data-page="journal"] #lbslot img,body[data-page="journal"] #lbslot video{max-height:82svh}
body[data-page="journal"] .toast{z-index:109}
body[data-page="journal"] .toast.on{transform:translateX(-50%);opacity:1}
.endnote,.loading{padding:38px 0;text-align:center;color:var(--muted);font:12px/1.8 var(--ui)}
.retry-feed{margin-top:10px}
@media(max-width:600px){#ta{height:152px;min-height:142px;font-size:16px}.home-tagline{font-size:14px}body[data-page="journal"] .body{font-size:14px}body[data-page="journal"] .moment{padding:20px 0 23px}body[data-page="journal"] .moment .head{gap:6px 10px}body[data-page="journal"] .moment .date{font-size:10px}body[data-page="journal"] .moment .place{font-size:10px}body[data-page="journal"] .body h1,body[data-page="journal"] .body h2{font-size:18px}body[data-page="journal"] #mapwrap{min-height:360px;height:calc(100svh - 260px)}body[data-page="journal"] .travel-toolbar{gap:9px}body[data-page="journal"] #composer{padding:10px;align-items:flex-end}body[data-page="journal"] #composer .panel{padding:18px 14px calc(18px + env(safe-area-inset-bottom));max-height:91svh}body[data-page="journal"] #composer textarea,body[data-page="journal"] .mchip .cap{font-size:16px}body[data-page="journal"] .mchip .ops button{min-height:34px}body[data-page="journal"] .iconbtn{min-height:38px}#list .clip-actions a{min-height:36px}}
