@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Inter+Tight:wght@600;700;800&display=swap";:root{--bg:#fff;--ink:#1a1a1a;--ink-soft:#4a4a4a;--ink-faint:#8a8a8a;--rule:#d8d8d8;--rule-soft:#ececec;--row-alt:#f6f6f6;--placeholder:#d92020;--accent:#1a1a1a;--max-width:1040px;--font-display:"Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body:"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100%;font-size:16px;line-height:1.55;transition:background .2s,color .2s}a{color:inherit}.site-header{max-width:var(--max-width);border-bottom:1px solid var(--rule-soft);justify-content:space-between;align-items:baseline;margin:0 auto 40px;padding:28px 48px 18px;display:flex}.site-header .logo{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:20px;font-weight:800;text-decoration:none}.site-header nav{align-items:center;gap:22px;display:flex}.site-header nav a{color:var(--ink-soft);font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}.site-header nav a:hover{color:var(--ink)}.site-header nav a.active{color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px}.theme-switcher{font-family:var(--font-body);color:var(--ink-soft);background:var(--bg);border:1px solid var(--rule);cursor:pointer;border-radius:4px;padding:5px 8px;font-size:13px}.page{max-width:var(--max-width);margin:0 auto;padding:0 48px 80px}.section-head{border-bottom:1px solid var(--rule-soft);margin-bottom:40px;padding:50px 0 36px}.section-head .eyebrow,.home-hero .eyebrow{font-family:var(--font-display);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;font-size:12px}.section-head h1{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:16px;font-size:52px;font-weight:800;line-height:1}.section-head .tagline,.home-hero .tagline{color:var(--ink-soft);max-width:560px;font-size:17px}.home-hero{border-bottom:1px solid var(--rule-soft);margin-bottom:56px;padding:60px 0 50px}.home-hero h1{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:20px;font-size:64px;font-weight:800;line-height:1}.home-hero .tagline{font-size:18px}.dash-grid{background:var(--rule-soft);border:1px solid var(--rule-soft);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;display:grid}.dash-tile{background:var(--bg);color:var(--ink);flex-direction:column;gap:10px;min-height:170px;padding:30px 26px 26px;text-decoration:none;transition:background .15s;display:flex}.dash-tile:hover{background:var(--row-alt)}.dash-tile .idx{font-family:var(--font-display);letter-spacing:.12em;color:var(--ink-faint);font-size:12px}.dash-tile .t-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:26px;font-weight:800}.dash-tile .t-desc{color:var(--ink-soft);margin-top:auto;font-size:14px}.dash-tile .t-arrow{color:var(--ink-faint);font-size:15px}.board-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:28px;display:flex}.board-toolbar input[type=url]{border:1px solid var(--rule);min-width:200px;font-family:var(--font-body);color:var(--ink);background:var(--bg);flex:280px;padding:11px 14px;font-size:14px}.board-toolbar input[type=url]:focus{border-color:var(--ink);outline:none}.btn{font-family:var(--font-display);border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;padding:11px 18px;font-size:13.5px;font-weight:600;transition:opacity .15s}.btn:hover{opacity:.82}.btn.ghost{background:var(--bg);color:var(--ink)}.board-hint{color:var(--ink-faint);margin-bottom:26px;font-size:12.5px}.board-error{color:var(--placeholder);border:1px solid var(--placeholder);border-radius:4px;margin-bottom:20px;padding:10px 14px;font-size:13.5px}.btn:disabled{opacity:.5;cursor:default}.board.dragover{outline:2px dashed var(--ink);outline-offset:8px}.masonry{column-count:4;column-gap:14px}@media (width<=1040px){.masonry{column-count:3}}@media (width<=720px){.masonry{column-count:2}}@media (width<=440px){.masonry{column-count:1}}.pin{break-inside:avoid;border:1px solid var(--rule-soft);background:var(--row-alt);cursor:zoom-in;min-height:60px;margin-bottom:14px;position:relative;overflow:hidden}.pin.broken{cursor:default}.pin-broken{text-align:center;min-height:120px;color:var(--ink-faint);background:repeating-linear-gradient(45deg, var(--row-alt), var(--row-alt) 10px, transparent 10px, transparent 20px);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px;font-size:12.5px;display:flex}.pin-broken a{color:var(--ink-soft)}.pin img{width:100%;display:block}.pin .del{color:#fff;cursor:pointer;opacity:0;background:#0000009e;border:none;border-radius:50%;width:28px;height:28px;font-size:15px;line-height:1;transition:opacity .15s;position:absolute;top:8px;right:8px}.pin:hover .del{opacity:1}.pin .del:hover{background:var(--placeholder)}.board-empty{text-align:center;color:var(--ink-faint);border:1px dashed var(--rule);padding:80px 24px}.board-empty strong{font-family:var(--font-display);color:var(--ink-soft);margin-bottom:8px;font-size:18px;display:block}.lightbox{z-index:1000;background:#0f0f0feb;justify-content:center;align-items:center;padding:40px;display:none;position:fixed;inset:0}.lightbox.open{display:flex}.lightbox img{object-fit:contain;max-width:92vw;max-height:88vh;box-shadow:0 8px 40px #00000080}.lightbox .lb-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:30px;line-height:1;position:absolute;top:20px;right:26px}.post-list{border-top:1px solid var(--ink)}.post-item{color:var(--ink);border-bottom:1px solid var(--rule-soft);padding:26px 4px;text-decoration:none;transition:padding-left .15s,background .15s;display:block}.post-item:hover{background:var(--row-alt);padding-left:12px}.post-item .p-date{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px;font-size:12px}.post-item .p-title{font-family:var(--font-display);letter-spacing:-.01em;margin-bottom:8px;font-size:22px;font-weight:700}.post-item .p-excerpt{color:var(--ink-soft);max-width:640px;font-size:14.5px}.proj-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;display:grid}.proj-card{border:1px solid var(--rule-soft);color:var(--ink);flex-direction:column;text-decoration:none;transition:border-color .15s;display:flex}.proj-card:hover{border-color:var(--ink)}.proj-card .p-thumb{background:linear-gradient(135deg,#e8eef5,#5a6878);height:160px}.proj-card .p-body{padding:18px 20px 22px}.proj-card .p-tag{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px;font-size:11px}.proj-card .p-name{font-family:var(--font-display);margin-bottom:6px;font-size:19px;font-weight:700}.proj-card .p-desc{color:var(--ink-soft);font-size:14px}.category{margin-bottom:64px}.category-header{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:baseline;margin-bottom:24px;padding-bottom:12px;display:flex}.category-header h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:24px;font-weight:700}.category-header .count{color:var(--ink-faint);font-size:13px;font-family:var(--font-display);letter-spacing:.05em}.entry-grid{background:var(--rule-soft);border:1px solid var(--rule-soft);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;display:grid}.entry-card{background:var(--bg);color:var(--ink);flex-direction:column;gap:6px;min-height:100px;padding:22px 20px;text-decoration:none;transition:background .15s;display:flex}.entry-card:hover{background:var(--row-alt)}.entry-card .name{font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:700}.entry-card .subtitle{color:var(--ink-soft);font-size:13px}.entry-card.stub .name{color:var(--placeholder)}.entry-card.stub:after{content:"stub";letter-spacing:.1em;text-transform:uppercase;color:var(--placeholder);border:1px solid var(--placeholder);border-radius:2px;align-self:flex-start;margin-top:auto;padding:2px 6px;font-size:10px}.theme-presets{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:36px;display:flex}.theme-presets .te-label,.theme-actions .te-status{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-right:4px;font-size:12px}.theme-fields{background:var(--rule-soft);border:1px solid var(--rule-soft);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;margin-bottom:32px;display:grid}.theme-field{background:var(--bg);cursor:pointer;align-items:center;gap:14px;padding:16px 18px;display:flex}.theme-field input[type=color]{border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:6px;flex:none;block-size:38px;inline-size:38px;padding:0}.theme-field input[type=color]::-webkit-color-swatch-wrapper{padding:3px}.theme-field input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}.theme-field .tf-name{font-size:14px;font-weight:600}.theme-field .tf-val{color:var(--ink-faint);letter-spacing:.02em;margin-inline-start:auto;font-family:Inter Tight,monospace;font-size:12px}.theme-actions{align-items:center;gap:16px;display:flex}.theme-actions .te-status{text-transform:none;letter-spacing:0;color:var(--ink-soft);font-size:13px}@media (width<=820px){.site-header{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:28px;padding:20px 24px 14px}.site-header nav{flex-wrap:wrap;gap:16px}.page{padding:0 24px 60px}.section-head h1{font-size:38px}.home-hero{margin-bottom:36px;padding:30px 0 36px}.home-hero h1{font-size:44px}.dash-tile .t-name{font-size:22px}}
