:root{color-scheme:light;--bg:#f6f2ed;--bg-elev:#fff;--fg:#1f2529;--fg-soft:color-mix(in oklab,var(--fg) 65%,#fff);--brand:#5b3e27;--accent:var(--brand);--accent-2:#2d5365;--success:#2fbf71;--danger:#d64545;--link:#2d5365;--tile-ink:#2f2418;--border:color-mix(in oklab,var(--fg) 14%,#fff);--shadow:0 6px 24px rgba(0,0,0,.08),0 2px 6px rgba(0,0,0,.06);--font-sans:ui-sans-serif,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";--radius:16px;--radius-lg:22px;--radius-xl:28px;--pad:clamp(14px,1.4vw,20px);--gap:clamp(16px,2vw,26px);--reader-width:min(70ch,100%);--tile-1:#f3ebe2;--tile-2:#e6edf3;--tile-3:#efe2d4;--tile-4:#f1e4de;--tile-5:#e0eaef;--tile-6:#e7f0e8;--tile-7:#ece6f1;--tile-8:#f2e7dd;--tile-9:#e4f0f1}*,:after,:before{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:400 16px/1.6 var(--font-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;position:relative;z-index:0}body:before{content:"";position:fixed;left:max(-16vw,-160px);bottom:8vh;width:clamp(380px,42vw,800px);aspect-ratio:1/1;background:url(/assets/pfote_honovi.svg?v=2) 0 0/contain no-repeat;opacity:.035;transform:scaleX(-1);pointer-events:none;z-index:-1}main{flex:1 1}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid color-mix(in oklab,var(--brand) 70%,#fff);outline-offset:2px;border-radius:6px}.skip,.visually-hidden-focusable{position:absolute;left:-9999px;top:auto}.skip:focus,.visually-hidden-focusable:focus{left:12px;top:12px;background:var(--bg-elev);padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);z-index:1000}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}header.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:saturate(1.1) blur(8px);backdrop-filter:saturate(1.1) blur(8px);background:color-mix(in oklab,var(--bg) 70%,transparent);border-bottom:1px solid var(--border)}.nav{max-width:1200px;margin:0 auto;padding:10px var(--pad);display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:var(--gap);gap:var(--gap)}.brand,.nav{align-items:center}.brand{display:flex;gap:14px}.logo{width:clamp(44px,3.2vw,56px);height:auto;display:block}.brand .logo{width:40px}.title{font-weight:650;letter-spacing:.2px}.subtitle{display:block;font-size:.9rem;color:var(--fg-soft)}.row{display:flex;gap:8px;flex-wrap:wrap}.badge,.row{align-items:center}.badge{display:inline-flex;gap:.35rem;padding:.35rem .7rem;border-radius:999px;background:color-mix(in oklab,var(--brand) 18%,#fff);color:var(--tile-ink);font-size:.85rem;font-weight:600}.status-badge{gap:8px}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:0 0 0 2px hsla(0,0%,100%,.8),0 0 10px rgba(0,0,0,.15)}.status-live{background:var(--success);box-shadow:0 0 0 2px hsla(0,0%,100%,.8),0 0 12px color-mix(in oklab,var(--success) 80%,#fff)}.status-offline{background:var(--danger);box-shadow:0 0 0 2px hsla(0,0%,100%,.8),0 0 12px color-mix(in oklab,var(--danger) 80%,#fff)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:10px 16px;border-radius:12px;background:var(--brand);color:#fff;border:none;box-shadow:var(--shadow);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn.btn--sm{font-size:.85rem;padding:8px 14px}.btn.secondary{background:var(--accent-2)}.btn.ghost{background:transparent;color:var(--fg);border:1px solid var(--border);box-shadow:none}.sub{color:var(--fg-soft)}.error{color:#a32020;font-weight:600}.site{text-align:center;padding:1.5rem;background:transparent;color:var(--fg-soft);display:grid;justify-items:center;grid-gap:6px;gap:6px}.landing{display:flex;justify-content:center;align-items:center;padding:clamp(36px,10vw,120px) var(--pad)}.landing-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(28px,5vw,48px);width:min(720px,100%);display:grid;grid-gap:18px;gap:18px}.landing-card h1{margin:0;font-size:clamp(28px,4.5vw,40px)}.landing-card p{margin:0;color:var(--fg-soft)}.cta{display:flex;flex-wrap:wrap;gap:12px}.login-shell{min-height:calc(100vh - 180px);display:flex;align-items:center;justify-content:center;padding:clamp(32px,6vw,72px) var(--pad)}.login-card{width:min(520px,100%);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(28px,4vw,44px);display:grid;grid-gap:24px;gap:24px}.login-brand{display:grid;grid-template-columns:auto 1fr;grid-gap:18px;gap:18px;align-items:center}.login-brand h1{margin:0 0 6px;font-size:clamp(26px,3.6vw,34px)}.login-form{display:grid;grid-gap:16px;gap:16px}label{font-weight:600;font-size:.9rem}input[type=email],input[type=password],input[type=search],input[type=text]{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:color-mix(in oklab,var(--bg-elev) 90%,var(--border));color:var(--fg);font:inherit}input::placeholder{color:color-mix(in oklab,var(--fg) 45%,#fff)}.login-hint{font-size:.9rem;color:var(--fg-soft);line-height:1.5}.dashboard{padding:clamp(28px,6vw,64px) var(--pad) clamp(60px,8vw,96px)}.dashboard__inner{max-width:1200px;margin:0 auto;display:grid;grid-gap:clamp(32px,5vw,60px);gap:clamp(32px,5vw,60px)}.dashboard__header{display:grid;grid-gap:clamp(20px,3vw,28px);gap:clamp(20px,3vw,28px)}.dashboard__intro h1{margin:0;font-size:clamp(32px,5vw,48px)}.dashboard__intro p{margin:0;max-width:70ch;color:var(--fg-soft)}.dashboard__search{display:grid;grid-gap:14px;gap:14px}.search-input{display:flex;align-items:center;gap:12px;background:var(--bg-elev);border-radius:16px;padding:4px 4px 4px 16px;border:1px solid var(--border);box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}.search-input input{flex:1 1;border:none;background:transparent;font-size:1rem;padding:12px 0;outline:none;color:var(--fg)}.search-status{font-size:.85rem;color:var(--fg-soft);min-width:120px;text-align:right}.search-filters{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{border:1px solid var(--border);background:var(--bg-elev);color:var(--fg);border-radius:999px;padding:6px 14px;font:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.filter-chip.active{background:color-mix(in oklab,var(--brand) 18%,#fff);border-color:color-mix(in oklab,var(--brand) 30%,var(--border));color:var(--tile-ink);font-weight:600}.search-empty{color:var(--fg-soft);font-style:italic}.search-results{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px clamp(18px,3vw,26px);display:grid;grid-gap:16px;gap:16px}.search-results__title{margin:0;font-size:1.1rem}.search-results ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:14px;gap:14px}.search-result{width:100%;text-align:left;background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;padding:16px;display:grid;grid-gap:8px;gap:8px;cursor:pointer;transition:border-color .15s ease,transform .15s ease}.search-result:hover{border-color:color-mix(in oklab,var(--accent-2) 30%,var(--border));transform:translateY(-2px)}.search-result__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.search-result__title{font-weight:650}.search-result__badge{background:color-mix(in oklab,var(--accent-2) 18%,#fff);color:var(--accent-2);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600}.search-result__meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.85rem;color:var(--fg-soft)}.search-result__path{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75rem;color:color-mix(in oklab,var(--fg) 45%,#fff)}.search-result__snippet{margin:0;font-size:.95rem;color:var(--fg)}.search-result__snippet mark{background:color-mix(in oklab,var(--accent-2) 25%,#fff);border-radius:4px;padding:0 2px}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:clamp(18px,3vw,28px);gap:clamp(18px,3vw,28px)}.category-card{display:grid;grid-template-rows:auto 1fr auto;align-items:start;grid-gap:16px;gap:16px;background:var(--tile-color,var(--bg-elev));color:var(--tile-ink);border:2px solid transparent;border-radius:var(--radius-lg);padding:26px;text-align:left;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease;position:relative}.category-card:hover{transform:translateY(-4px)}.category-card:focus-visible{border-color:color-mix(in oklab,var(--brand) 35%,transparent)}.category-card__title{font-weight:650;font-size:1.15rem}.category-card__count{justify-self:end;font-size:.95rem;color:color-mix(in oklab,var(--tile-ink) 70%,#fff)}.sheet-backdrop{position:fixed;inset:0;background:rgba(14,18,20,.45);display:grid;place-items:center;padding:clamp(16px,3vw,28px);z-index:50}.sheet{background:var(--bg-elev);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow);width:min(1200px,96vw);max-height:min(90vh,96vh);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.sheet__header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px clamp(20px,3vw,32px);border-bottom:1px solid var(--border)}.sheet__header h2{margin:0;font-size:1.4rem}.sheet__close{border:1px solid var(--border);background:transparent;color:var(--fg);font:inherit;padding:8px 14px;border-radius:999px;cursor:pointer}.sheet__body{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);min-height:0;height:100%}.sheet__list{border-right:1px solid var(--border);padding:clamp(18px,3vw,24px);display:grid;grid-template-rows:auto 1fr;grid-gap:18px;gap:18px;overflow:hidden}.sheet__list ul{list-style:none;margin:0;overflow:auto;display:grid;grid-gap:10px;gap:10px;padding:0 4px 0 0}.sheet-link{width:100%;text-align:left;background:transparent;border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;font:inherit;color:inherit;cursor:pointer;min-height:48px;transition:border-color .15s ease,background .15s ease}.sheet-link:hover{border-color:color-mix(in oklab,var(--accent-2) 28%,var(--border))}.sheet-link.active{background:color-mix(in oklab,var(--accent-2) 12%,#fff);border-color:color-mix(in oklab,var(--accent-2) 32%,var(--border));font-weight:600}.sheet-link__number{font-size:.85rem;color:var(--accent-2);font-weight:600}.sheet__content{padding:clamp(20px,3vw,36px);overflow:auto}.reader{width:var(--reader-width);max-width:100%;margin:0 auto;display:grid;grid-gap:14px;gap:14px}.reader__meta{display:flex;flex-wrap:wrap;gap:10px}.reader__title{margin:0;font-size:clamp(26px,3.4vw,34px)}.reader__content{display:grid;grid-gap:.7em;gap:.7em;line-height:1.6}.reader__content h1,.reader__content h2,.reader__content h3{margin:1.1em 0 .5em;line-height:1.25}.reader__content p{margin:.4em 0}.reader__content>:first-child{margin-top:0}.reader__content ol,.reader__content ul{padding-left:1.4em;margin:.6em 0}.reader__content li{margin:.3em 0}.reader__content blockquote{border-left:4px solid color-mix(in oklab,var(--accent-2) 40%,#fff);padding:.4em 1em;margin:1em 0;background:color-mix(in oklab,var(--bg-elev) 92%,var(--border))}.reader__content table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.95rem}.reader__content td,.reader__content th{border:1px solid var(--border);padding:8px 10px;text-align:left}.reader__content pre{background:color-mix(in oklab,var(--bg-elev) 90%,var(--border));border-radius:12px;padding:12px;overflow:auto;font-size:.95rem}.reader__content code{background:color-mix(in oklab,var(--bg-elev) 92%,var(--border));padding:2px 4px;border-radius:6px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.reader__content a{color:var(--link);text-decoration:underline}@media (max-width:900px){.nav,.sheet__body{grid-template-columns:1fr}.sheet__body{grid-template-rows:auto 1fr}.sheet__list{border-right:none;border-bottom:1px solid var(--border);grid-template-rows:auto auto}}@media (max-width:700px){body:before{display:none}.category-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.search-input{flex-direction:column;align-items:stretch;padding:12px}.search-status{text-align:left;min-width:0}}@media (max-width:600px){.category-card{padding:22px}.landing-card{padding:28px 22px}.login-card{padding:24px 20px}.cta{width:100%}.cta .btn,.cta .btn.ghost{flex:1 1}}