@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#191919;--surface:#1f1f1f;--surface-2:#252525;--border:#ffffff17;--ink:#ededec;--muted:#9b9b9b;--muted-2:#6f6f6f;--accent:#4fd88a;--accent-soft:#4fd88a24;--tag-red-bg:#4fd88a1f;--tag-red-fg:#6fdc9e;--tag-amber-bg:#e0a45824;--tag-amber-fg:#e0a458;--tag-clay-bg:#b28ae024;--tag-clay-fg:#c19bea;--font-body:"Inter", -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--maxw:700px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:radial-gradient(600px 300px at 10% 0%, #4fd88a08, transparent 60%), var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}::selection{background:#4fd88a40}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#root{min-height:100svh}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px 80px}.icon{vertical-align:-2px;flex-shrink:0;width:14px;height:14px;display:inline-block}.icon svg{width:100%;height:100%}.topbar{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#191919d9;position:sticky;top:0}.topbar .inner{max-width:var(--maxw);justify-content:space-between;align-items:center;margin:0 auto;padding:12px 24px;display:flex}.crumbs{color:var(--muted);align-items:center;gap:7px;font-size:13px;display:flex}.crumbs b{color:var(--ink);font-weight:500}.crumbs .sep{color:var(--muted-2)}.cmdk{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:11.5px;display:flex}.cover{cursor:pointer;background-color:#1b1c1b;background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:10px;height:150px;margin-top:24px;position:relative;overflow:hidden}.cover .play-hint{font-family:var(--font-mono);color:var(--ink);opacity:0;pointer-events:none;background:0 0;justify-content:center;align-items:center;gap:8px;font-size:13px;transition:opacity .2s,background .2s;display:flex;position:absolute;inset:0}.cover .play-hint .icon{width:16px;height:16px;color:var(--accent)}.cover:hover .play-hint,.cover:focus-visible .play-hint{opacity:1;background:#00000059}.cover .play-badge{z-index:1;font-family:var(--font-mono);color:var(--ink);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border);pointer-events:none;background:#191919bf;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:11.5px;transition:opacity .2s;display:flex;position:absolute;bottom:10px;right:10px}.cover .play-badge .icon{width:12px;height:12px;color:var(--accent);animation:1.8s ease-in-out infinite playPulse}.cover:hover .play-badge,.cover:focus-visible .play-badge{opacity:0}@keyframes playPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(1.2)}}.icon-row{z-index:2;margin-top:-30px;padding:0 4px;position:relative}.page-icon{background:var(--surface-2);border:3px solid var(--bg);width:68px;height:68px;font-family:var(--font-mono);color:var(--accent);border-radius:16px;justify-content:center;align-items:center;font-size:22px;font-weight:500;display:flex;overflow:hidden}.page-icon img{object-fit:cover;width:100%;height:100%;display:block}.page-icon.pulse{animation:.5s iconPulse}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.title-block{margin-top:18px}.name-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.title-block h1{letter-spacing:-.01em;align-items:center;gap:4px;font-size:34px;font-weight:700;display:flex}.cursor{background:var(--accent);width:3px;height:28px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.star-btn{font-family:var(--font-mono);color:var(--muted);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;flex-shrink:0;align-items:center;gap:7px;padding:7px 12px;font-size:13px;transition:all .15s;display:flex}.star-btn:hover:not(:disabled){color:var(--ink);border-color:#fff3}.star-btn:disabled{opacity:.7;cursor:default}.star-btn .icon{width:15px;height:15px}.star-btn.starred{color:var(--tag-amber-fg);background:var(--tag-amber-bg);border-color:#e0a45866}.star-btn .star-count{text-align:left;min-width:1ch}.title-block .sub{color:var(--muted);margin-top:6px;font-size:16px}.meta-line{font-family:var(--font-mono);color:var(--muted-2);margin-top:14px;font-size:11.5px}.props{flex-direction:column;margin-top:28px;display:flex}.prop-row{align-items:center;gap:16px;padding:7px 0;display:flex}.prop-row .k{width:110px;color:var(--muted);flex-shrink:0;align-items:center;gap:8px;font-size:13px;display:flex}.prop-row .k .icon{color:var(--muted-2)}.prop-row .v{color:var(--ink);font-size:14px}.tag{font-family:var(--font-mono);border-radius:5px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;display:inline-flex}.tag.red{background:var(--tag-red-bg);color:var(--tag-red-fg)}.tag.amber{background:var(--tag-amber-bg);color:var(--tag-amber-fg)}.tag.clay{background:var(--tag-clay-bg);color:var(--tag-clay-fg)}.tag .dot{background:currentColor;border-radius:50%;width:6px;height:6px}hr.divider{background:var(--border);border:none;height:1px;margin:36px 0}.kicker{font-family:var(--font-mono);color:var(--muted-2);text-transform:lowercase;align-items:center;gap:8px;margin-bottom:16px;font-size:12px;display:flex}.kicker .chevron{color:var(--muted-2);font-size:10px}.callout{background:var(--surface);border:1px solid var(--border);color:#c9c9c8;border-radius:8px;gap:12px;margin-bottom:10px;padding:14px 16px;font-size:14px;display:flex}.callout .prompt{font-family:var(--font-mono);color:var(--accent);flex-shrink:0}.callout b{color:var(--ink);font-weight:600}.contact-row{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.contact-row a{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:6px 12px;font-size:12.5px;transition:all .15s}.contact-row a:hover{color:var(--accent);border-color:#4fd88a66}.proj-head-row{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.view-all{font-family:var(--font-mono);color:var(--muted-2);font-size:12px}.view-all:hover{color:var(--accent)}.project{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-bottom:10px;transition:border-color .15s,transform .2s,box-shadow .2s;overflow:hidden}.project:hover{border-color:#fff3;transform:translateY(-2px);box-shadow:0 10px 26px #00000047}.project .row{cursor:pointer;align-items:flex-start;gap:12px;padding:13px 16px;display:flex}.project .row .sym{font-family:var(--font-mono);color:var(--muted);text-align:center;flex-shrink:0;width:18px;margin-top:1px;font-size:15px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),color .2s;display:inline-block}.project .row:hover .sym{color:var(--accent);transform:rotate(45deg)}.project .row-main{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.project .row-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.project .row .name{font-size:15px;font-weight:600}.project .row .desc{color:var(--muted);font-size:13px}.project .row .chev{color:var(--muted-2);flex-shrink:0;font-size:12px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:inline-block}.project.collapsed .row .chev{transform:rotate(-90deg)}.row-stack{flex-wrap:wrap;gap:5px;display:flex}.row-stack span{font-family:var(--font-mono);color:var(--muted-2);border:1px solid var(--border);background:#ffffff0a;border-radius:5px;padding:2px 7px;font-size:10.5px;transition:color .15s,border-color .15s,transform .15s}.row-stack span:hover{color:var(--accent);border-color:#4fd88a66;transform:translateY(-1px)}.project .body{opacity:1;max-height:340px;padding:0 16px 16px 46px;transition:max-height .35s cubic-bezier(.4,0,.2,1),opacity .25s,padding-top .3s,padding-bottom .3s;overflow:hidden}.project.collapsed .body{opacity:0;max-height:0;padding-top:0;padding-bottom:0}.project .body p{color:#b9b9b8;max-width:56ch;margin-bottom:12px;font-size:13.5px}.term-block{font-family:var(--font-mono);border:1px solid var(--border);color:#a9a9a8;background:#141414;border-radius:6px;padding:10px 12px;font-size:12px}.term-block .l{align-items:center;gap:8px;padding:2px 0;display:flex}.term-block .l .k{color:var(--muted-2);flex-shrink:0}.term-block .l .link{color:var(--accent)}.term-block .l .link:hover{text-decoration:underline}.stack-group{margin-bottom:18px}.stack-group .label{font-family:var(--font-mono);color:var(--muted-2);margin-bottom:8px;font-size:11px}.stack-tags{flex-wrap:wrap;gap:7px;display:flex}.stack-tags span{font-family:var(--font-mono);color:var(--muted);background:var(--surface);border:1px solid var(--border);cursor:default;border-radius:6px;padding:5px 10px;font-size:12px;transition:transform .15s,border-color .15s,color .15s}.stack-tags span:hover{color:var(--ink);border-color:#4fd88a66;transform:translateY(-2px)}.embed{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden}.embed .embed-head{border-bottom:1px solid var(--border);font-family:var(--font-mono);color:var(--muted);justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;display:flex}.embed .embed-head .title{align-items:center;gap:8px;display:flex}.embed .embed-head .icon{color:var(--muted-2)}.embed .embed-head .dots{letter-spacing:2px;color:var(--muted-2)}.embed .embed-body{padding:16px}.embed .embed-body.calendar-body{overflow:hidden}.embed .embed-body.calendar-body svg{max-width:100%;display:block}.embed .embed-foot{border-top:1px solid var(--border);font-family:var(--font-mono);color:var(--muted-2);padding:10px 16px;font-size:11px}.embed .embed-foot .zoom-hint{color:var(--accent);opacity:.8}.reveal.embed .calendar-body svg{transform-origin:0;animation:.7s cubic-bezier(.16,.8,.3,1) both paused calDrawIn}.reveal.embed.in-view .calendar-body svg{animation-play-state:running}@keyframes calDrawIn{0%{opacity:0;transform:scaleX(.85)}to{opacity:1;transform:scaleX(1)}}.calendar-body svg rect{transform-box:fill-box;transform-origin:50%;transition:transform .15s,filter .15s}.calendar-body svg rect:hover{filter:drop-shadow(0 0 4px #4fd88a8c);transform:scale(1.35)}.log-list{flex-direction:column;gap:14px;display:flex}.log-row{align-items:flex-start;gap:12px;display:flex}.log-row .tag{flex-shrink:0;margin-top:2px}.log-text{flex-direction:column;gap:2px;display:flex}.log-text a{color:inherit}.log-text a:hover b{color:var(--accent)}.log-text b{color:var(--ink);font-size:13.5px;font-weight:600}.log-text .repo{font-family:var(--font-mono);color:var(--muted-2);font-size:11.5px}.log-empty{font-family:var(--font-mono);color:var(--muted-2);padding:2px 0;font-size:12.5px}.last-edited{font-family:var(--font-mono);color:var(--muted-2);align-items:center;gap:8px;margin-top:40px;font-size:11.5px;display:flex}.last-edited .dot{background:var(--accent);border-radius:50%;width:5px;height:5px}footer{text-align:center;font-family:var(--font-mono);color:var(--muted-2);padding:30px 0 10px;font-size:11px}@media (width<=480px){.prop-row .k{width:90px}.cover{height:110px}}.cmdk{cursor:pointer}.page-icon{cursor:pointer;-webkit-user-select:none;user-select:none}.copy-btn{font-family:var(--font-mono);color:var(--muted-2);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;margin-left:auto;padding:1px 6px;font-size:10.5px;transition:color .15s,border-color .15s}.copy-btn:hover{color:var(--accent);border-color:#4fd88a66}.reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(14px)}.reveal.in-view{opacity:1;transform:translateY(0)}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0009;justify-content:center;align-items:flex-start;padding-top:14vh;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.cmdk-modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:92%;max-width:420px;overflow:hidden;box-shadow:0 20px 60px #00000080}.cmdk-modal .head{border-bottom:1px solid var(--border);font-family:var(--font-mono);color:var(--muted-2);justify-content:space-between;padding:12px 16px;font-size:12px;display:flex}.cmdk-modal ul{padding:6px;list-style:none}.cmdk-modal li{font-family:var(--font-mono);color:var(--muted);cursor:default;border-radius:6px;padding:10px;font-size:13px}.cmdk-modal li:hover{background:var(--surface-2);color:var(--ink)}.cmdk-modal li span{color:var(--accent);margin-right:8px}.game-backdrop{align-items:center;padding:24px}.game-modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;max-width:480px;overflow:hidden;box-shadow:0 20px 60px #00000080}.game-modal .head{border-bottom:1px solid var(--border);font-family:var(--font-mono);color:var(--muted-2);justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;display:flex}.game-modal .close-btn{font-family:var(--font-mono);color:var(--muted-2);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px;transition:color .15s,border-color .15s}.game-modal .close-btn:hover{color:var(--accent);border-color:#4fd88a66}.game-frame-wrap{aspect-ratio:4/3;background:#000;width:100%}.game-frame-wrap iframe{border:0;width:100%;height:100%;display:block}.toast{background:var(--surface);border:1px solid var(--border);color:var(--ink);font-family:var(--font-mono);opacity:0;pointer-events:none;z-index:200;border-radius:8px;padding:10px 16px;font-size:12.5px;transition:opacity .25s,transform .25s;position:fixed;bottom:26px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast .dot{color:var(--accent);margin-right:6px}.matrix-overlay{z-index:90;pointer-events:none;opacity:0;transition:opacity .4s;position:fixed;inset:0}.matrix-overlay.show{opacity:.6}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.react-activity-calendar__tooltip{color:#f0f0f0;background-color:#1a1a1a;border-radius:.25em;width:max-content;max-width:calc(100vw - 20px);padding:.2em .5em;font-size:13px}.react-activity-calendar__tooltip .react-activity-calendar__tooltip-arrow{fill:#1a1a1a}.react-activity-calendar__tooltip[data-color-scheme=dark]{color:#0f0f0f;background-color:#f0f0f0}.react-activity-calendar__tooltip[data-color-scheme=dark] .react-activity-calendar__tooltip-arrow{fill:#f0f0f0}
