:root{color-scheme:light;--bg: #f6f6f2;--surface: #ffffff;--ink: #111111;--muted: #5d5d55;--quiet: #8a8a80;--line: rgba(17, 17, 17, .22);--line-strong: #111111;--accent: #d9ff3f;--accent-ink: #111111;--code-comment: #8a8a80;--code-keyword: #55730a;--code-string: #0d7355;--code-number: #b25a00;--code-title: #111111;--code-type: #35469b;--code-attr: #6f3fa0;--code-meta: #7d7d72;--radius: 0px;--max: 1280px;font-family:Aptos,Segoe UI,Helvetica Neue,Arial,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #0d0e0c;--surface: #141512;--ink: #f4f4ec;--muted: #b1b1a7;--quiet: #75766d;--line: rgba(244, 244, 236, .2);--line-strong: #f4f4ec;--accent: #d9ff3f;--accent-ink: #101108;--code-comment: #7b7d72;--code-keyword: #d9ff3f;--code-string: #8fd9b6;--code-number: #f0b072;--code-title: #f4f4ec;--code-type: #a8b8ff;--code-attr: #cbaaff;--code-meta: #9a9a8f}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;min-width:320px;overflow:hidden;background:var(--bg);color:var(--ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;cursor:crosshair}body.admin-route{overflow:auto}@media(pointer:fine){body:not(.static-blog).has-custom-cursor *,body:not(.static-blog).has-custom-cursor *:before,body:not(.static-blog).has-custom-cursor *:after{cursor:none!important}}body.static-blog{cursor:auto}body.static-blog a,body.static-blog button,body.static-blog input{cursor:pointer}body.static-blog input{cursor:text}@media(pointer:fine){body.static-blog.has-custom-cursor,body.static-blog.has-custom-cursor *,body.static-blog.has-custom-cursor *:before,body.static-blog.has-custom-cursor *:after{cursor:none!important}}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}::selection{background:var(--accent);color:var(--accent-ink)}.site-header{position:fixed;top:34px;left:0;right:0;z-index:20;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;min-height:72px;padding:0 28px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-mark,.header-github,.header-platform-link,.site-nav button,.button,.project-search,.theme-toggle,.project-link,.project-title,.text-hotspot,.focus-line,.hero-brand__letter,.contact-title__letter,.filter-row button,.view-switch button{transition:background .22s ease,border-color .22s ease,color .22s ease,transform .22s ease}.brand-mark:hover,.site-nav button:hover,.header-github:hover,.header-platform-link:hover,.button:hover,.project-search:hover,.project-search:focus-within,.theme-toggle:hover,.text-hotspot:hover,.text-hotspot:focus-visible,.focus-line:hover,.focus-line:focus-visible,.focus-line.is-active,.contact-title__letter:hover,.contact-title__letter:focus-visible,.contact-title__letter.is-active,.filter-row button:hover,.view-switch button:hover{border-color:var(--line-strong);background:var(--ink);color:var(--bg)}.brand-mark{display:inline-grid;place-items:center;width:72px;height:40px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;text-decoration:none;font-size:13px;font-weight:800;letter-spacing:.16em}.site-nav{display:flex;justify-content:center;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:none}.site-nav::-webkit-scrollbar{display:none}.site-nav button,.site-nav-link,.header-github,.header-platform-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px solid var(--line-strong);background:transparent;text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:11px;color:var(--muted);white-space:nowrap;-webkit-appearance:none;-moz-appearance:none;appearance:none}.site-nav button:hover,.site-nav button.is-active,.site-nav-link:hover,.site-nav-link:focus-visible,.header-github:hover,.header-platform-link:hover{color:var(--bg);background:var(--ink);border-color:var(--line-strong)}.header-github{gap:8px}.site-topline{position:fixed;inset:0 0 auto;z-index:30;height:3px;background:var(--accent)}.shared-alert-ticker{position:fixed;top:3px;left:0;right:0;z-index:21;height:31px;overflow:hidden;border-bottom:1px solid var(--line-strong);background:var(--ink);color:var(--bg)}.shared-alert-track{display:flex;width:max-content;padding-block:8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;animation:me-shared-marquee 28s linear infinite}.shared-alert-group{display:flex;gap:34px;padding-right:34px}.shared-alert-track b{color:var(--accent)}@keyframes me-shared-marquee{to{transform:translate(-50%)}}.header-platform-link{min-height:32px;padding:0 9px;border:1px solid var(--line);color:var(--muted);font-size:10px;letter-spacing:.12em;text-decoration:none;white-space:nowrap}.site-nav-link{position:relative;min-height:38px;padding:0 12px;border:1px solid var(--line-strong);color:var(--muted);font-size:11px;letter-spacing:.15em}.site-nav-link--external:after{content:"";position:absolute;left:8px;right:8px;bottom:4px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.16,1,.3,1)}.site-nav-link--external:hover:after,.site-nav-link--external:focus-visible:after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;justify-content:end;gap:8px}.page-shell{height:100dvh;padding-top:106px;overflow:hidden}.page-view{height:calc(100dvh - 106px);min-height:calc(100dvh - 106px);overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;animation:pageSwitch .42s cubic-bezier(.22,1,.36,1) both}.page-view::-webkit-scrollbar{width:8px}.page-view::-webkit-scrollbar-track{background:transparent}.page-view::-webkit-scrollbar-thumb{background:var(--line-strong)}.page-view>.section,.page-view>.hero-section{min-height:calc(100dvh - 106px)}.hero-section{min-height:calc(100dvh - 106px);display:grid;align-items:stretch;border-bottom:1px solid var(--line-strong);overflow:hidden}.hero-grid{width:min(100%,var(--max));margin:0 auto;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(320px,.96fr)}.hero-copy{display:flex;flex-direction:column;justify-content:center;min-height:calc(100dvh - 106px);padding:clamp(72px,10vw,132px) clamp(24px,5vw,72px);border-right:1px solid var(--line-strong)}.hero-copy .section-kicker,.hero-copy h1,.hero-role,.hero-intro,.hero-actions{animation:revealUp .82s cubic-bezier(.22,1,.36,1) both}.hero-copy .section-kicker{animation-delay:80ms}.hero-copy h1{animation-delay:.18s}.hero-role{animation-delay:.32s}.hero-intro{animation-delay:.42s}.hero-actions{animation-delay:.54s}.section-kicker{margin:0 0 22px;color:var(--quiet);font-size:11px;letter-spacing:.22em;text-transform:uppercase}.hero-copy h1{margin:0;font-size:clamp(94px,19vw,252px);line-height:.78;letter-spacing:-.09em;font-weight:900}.hero-brand{display:flex;flex-wrap:wrap;align-items:baseline}.hero-brand__letter{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 .025em;border:1px solid transparent;background:transparent;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;overflow:hidden}.hero-brand__letter:after{content:"";position:absolute;left:0;right:0;top:52%;height:2px;background:var(--accent);transform:translate(-105%);transition:transform .22s cubic-bezier(.22,1,.36,1)}.hero-brand__letter:hover,.hero-brand__letter:focus-visible,.hero-brand__letter.is-active{border-color:var(--line-strong);background:var(--ink);color:var(--bg);transform:translateY(-.035em)}.hero-brand__letter:hover:after,.hero-brand__letter:focus-visible:after,.hero-brand__letter.is-active:after{transform:translate(0)}.hero-role{width:min(100%,520px);margin:32px 0 0;color:var(--ink);font-size:clamp(18px,2vw,26px);line-height:1.25}.hero-intro{width:min(100%,560px);margin:22px 0 0;color:var(--muted);font-size:16px;line-height:1.85;text-wrap:pretty}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 18px;border:1px solid var(--line-strong);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:inherit;font:inherit;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800}.button:hover,.project-link:hover,.theme-toggle:hover{transform:translateY(-2px)}.button:active,.project-link:active,.theme-toggle:active{transform:translateY(0)}.button--primary{background:var(--ink);color:var(--bg)}.button--primary:hover{background:var(--bg);color:var(--ink)}.button--ghost{background:transparent;color:var(--ink)}.button--ghost:hover{background:var(--ink);color:var(--bg)}.hero-visual{position:relative;min-height:calc(100dvh - 106px);overflow:hidden;background:color-mix(in srgb,var(--surface) 72%,transparent);animation:visualWake 1.1s cubic-bezier(.22,1,.36,1) both;outline:0;isolation:isolate}.hero-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--hero-x, 58%) var(--hero-y, 46%),color-mix(in srgb,var(--accent) 18%,transparent),transparent 24%),linear-gradient(100deg,transparent 0%,color-mix(in srgb,var(--accent) 18%,transparent) 48%,transparent 72%);opacity:.42;transform:translate(-120%);animation:sweepLight 4.8s cubic-bezier(.22,1,.36,1) .9s infinite;pointer-events:none}.hero-visual:before{content:"";position:absolute;left:var(--hero-x, 58%);top:var(--hero-y, 46%);z-index:3;width:88px;height:88px;border:1px solid var(--line-strong);background:linear-gradient(90deg,transparent 49%,var(--accent) 50%,transparent 51%),linear-gradient(0deg,transparent 49%,var(--accent) 50%,transparent 51%);transform:translate(-50%,-50%);opacity:.62;pointer-events:none;transition:width .18s ease,height .18s ease,border-color .18s ease,opacity .18s ease}.hero-visual:hover:before,.hero-visual:focus-visible:before{width:128px;height:128px;border-color:var(--accent);opacity:1}.hero-visual.is-armed{background:radial-gradient(circle at var(--hero-x, 58%) var(--hero-y, 46%),color-mix(in srgb,var(--accent) 24%,transparent),transparent 26%),color-mix(in srgb,var(--surface) 72%,transparent)}.hero-visual:hover .line-field,.hero-visual:focus-visible .line-field,.hero-visual.is-armed .line-field{border-color:var(--accent)}.hero-visual:hover .signal-card,.hero-visual:focus-visible .signal-card,.hero-visual.is-armed .signal-card{background:var(--ink);color:var(--bg)}.hero-visual:hover .signal-card span,.hero-visual:focus-visible .signal-card span,.hero-visual.is-armed .signal-card span{color:color-mix(in srgb,var(--bg) 72%,transparent)}.line-field{position:absolute;inset:clamp(18px,3.6vw,48px);z-index:1;border:1px solid var(--line-strong);background:color-mix(in srgb,var(--surface) 64%,transparent);overflow:hidden;animation:drawFrame 1.1s cubic-bezier(.22,1,.36,1) .12s both;transition:border-color .22s ease,transform .26s ease}.hero-visual:hover .line-field{transform:translate(var(--field-drift-x, 0px),var(--field-drift-y, 0px))}.line-field:before,.line-field:after{content:"";position:absolute;left:0;right:0;pointer-events:none}.line-field:before{top:0;bottom:0;border:1px solid var(--line-strong);opacity:.28;transform:scaleX(.82) scaleY(.62);animation:fieldMeasure 3.6s ease-in-out infinite}.line-field:after{top:var(--hero-y, 46%);height:1px;background:var(--accent);opacity:.68;transform:translate(-100%);animation:scanAcross 4.2s cubic-bezier(.22,1,.36,1) 1.8s infinite}.line-field__svg{position:absolute;top:5%;right:5%;bottom:5%;left:5%;width:90%;height:90%;overflow:visible;transform:translate(var(--word-drift-x, 0px),var(--word-drift-y, 0px)) scale(1.02);transition:transform .17s ease-out}.line-field__stroke{fill:none;stroke:var(--line-strong);stroke-width:8;stroke-linecap:square;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;opacity:0;stroke-dasharray:120;stroke-dashoffset:120;animation:lineConverge 2.6s cubic-bezier(.16,1,.3,1) var(--stroke-delay) both,linePulse 2.8s ease-in-out calc(var(--stroke-delay) + 2.6s) infinite}.line-field__stroke--calibration{stroke:var(--accent);stroke-width:2;opacity:0;animation:calibrationSettle 2.1s cubic-bezier(.16,1,.3,1) var(--stroke-delay) both,calibrationBlink 2.4s ease-in-out calc(var(--stroke-delay) + 2.1s) infinite}.line-field__readout{position:absolute;left:clamp(16px,3vw,30px);bottom:clamp(16px,3vw,30px);z-index:2;padding:12px 14px;border:1px solid var(--line-strong);background:var(--bg);animation:revealUp .82s cubic-bezier(.22,1,.36,1) 2.2s both}.line-field__readout span,.line-field__readout strong{display:block;text-transform:uppercase}.line-field__readout span{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.24em}.line-field__readout strong{margin-top:6px;color:var(--quiet);font-size:9px;letter-spacing:.16em}.hero-visual:hover .line-field__stroke,.hero-visual:focus-visible .line-field__stroke,.hero-visual.is-armed .line-field__stroke{stroke:var(--accent)}.signal-card{position:absolute;right:clamp(22px,4vw,52px);bottom:clamp(22px,4vw,52px);width:min(310px,calc(100% - 44px));padding:18px;border:1px solid var(--line-strong);background:var(--bg);animation:revealUp .82s cubic-bezier(.22,1,.36,1) .64s both}.signal-card span{display:block;color:var(--quiet);font-size:10px;letter-spacing:.2em;margin-bottom:14px}.signal-card strong{display:block;font-size:19px;line-height:1.25}.signal-card em{display:inline-block;margin-top:18px;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet)}.hero-visual:hover .signal-card em,.hero-visual:focus-visible .signal-card em,.hero-visual.is-armed .signal-card em{color:var(--accent)}.section{width:min(100%,var(--max));margin:0 auto;padding:clamp(84px,11vw,148px) 28px;border-bottom:1px solid var(--line-strong)}.section-heading{max-width:760px;margin-bottom:52px}.section-heading h2,.project-header h2,.contact-frame h2{margin:0;font-size:clamp(42px,7vw,96px);line-height:.94;letter-spacing:-.06em}.profile-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:32px}.profile-text{padding-top:22px}.profile-text p{margin:0 0 32px;color:var(--muted);font-size:18px;line-height:1.85;text-wrap:pretty}.text-hotspot{display:inline-flex;align-items:center;min-height:1.75em;margin:0 .08em;padding:0 .28em;border:1px solid currentColor;background:color-mix(in srgb,var(--surface) 68%,transparent);color:var(--ink);font:inherit}.profile-text ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.profile-text li{border-bottom:1px solid var(--line);color:var(--ink)}.focus-line{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:stretch;width:100%;min-height:58px;padding:0;border:1px solid transparent;background:transparent;color:inherit;text-align:left;font:inherit}.focus-line span,.focus-line strong{display:flex;align-items:center;min-width:0;padding:14px 16px}.focus-line span{border-right:1px solid currentColor;color:var(--quiet);font-size:10px;font-weight:800;letter-spacing:.16em}.focus-line strong{font-size:15px;line-height:1.45;font-weight:600;overflow-wrap:anywhere}.focus-line:hover span,.focus-line:focus-visible span,.focus-line.is-active span{color:var(--accent)}.profile-text-readout{margin-top:22px;padding:18px;border:1px solid var(--line-strong);background:var(--surface)}.profile-text-readout span{display:block;margin-bottom:10px;color:var(--quiet);font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.profile-text-readout p{margin:0;color:var(--muted);font-size:15px;line-height:1.75}.profile-text-readout:hover{border-color:var(--accent)}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}.stat-tile{min-height:220px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:24px;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface);color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;transition:background .22s ease,color .22s ease,transform .22s ease}.stat-tile:hover,.stat-tile:focus-visible,.stat-tile.is-active{background:var(--ink);color:var(--bg);transform:translateY(-3px)}.stat-tile svg{transition:transform .22s ease,color .22s ease}.stat-tile:hover svg,.stat-tile:focus-visible svg,.stat-tile.is-active svg{color:var(--accent);transform:rotate(-8deg) scale(1.08)}.stat-tile strong{margin-top:auto;font-size:clamp(28px,4vw,52px);letter-spacing:-.06em}.stat-tile span{margin-top:10px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.16em}.stat-tile:hover span,.stat-tile:focus-visible span,.stat-tile.is-active span{color:color-mix(in srgb,var(--bg) 72%,transparent)}.stat-readout{grid-column:1 / -1;min-height:150px;padding:24px;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface)}.stat-readout span{display:block;margin-bottom:14px;color:var(--quiet);font-size:10px;font-weight:800;letter-spacing:.18em}.stat-readout strong{display:block;font-size:clamp(26px,4vw,50px);line-height:1;letter-spacing:-.06em}.stat-readout p{max-width:760px;margin:18px 0 0;color:var(--muted);font-size:16px;line-height:1.7}.project-header{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:52px}.project-count{color:var(--quiet);font-size:11px;letter-spacing:.2em;text-transform:uppercase}.project-console{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:stretch;gap:12px;margin-bottom:24px}.project-search,.filter-row,.view-switch{display:flex;align-items:center;min-height:48px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.project-search{gap:10px;padding:0 14px}.project-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.project-search input::placeholder{color:var(--quiet)}.unified-search{width:100%;min-height:48px;gap:10px;padding:0 14px;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink)}.unified-search>svg{flex:0 0 auto}.unified-search input,.unified-search input[type=search]{min-height:0;padding:0;text-transform:uppercase}.unified-search input::-webkit-search-cancel-button{opacity:.65}.project-search:hover input::placeholder,.project-search:focus-within input::placeholder{color:color-mix(in srgb,var(--bg) 58%,transparent)}.filter-row,.view-switch{gap:6px;padding:6px}.filter-row svg{margin:0 12px;flex:0 0 auto}.filter-row button,.view-switch button{min-height:34px;border:1px solid var(--line-strong);background:transparent;color:var(--muted);cursor:pointer}.filter-row button{padding:0 12px;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.view-switch button{display:inline-grid;place-items:center;width:38px}.filter-row button:hover,.view-switch button:hover,.filter-row button.is-selected,.view-switch button.is-selected{background:var(--ink);color:var(--bg)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}.project-grid--list{grid-template-columns:1fr}.blog-article-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid--list .project-card{min-height:0}.project-grid--list .project-card__body{padding-top:42px}.project-grid--list .project-card h3{font-size:clamp(32px,4vw,56px)}.project-card{position:relative;display:flex;flex-direction:column;min-height:430px;padding:clamp(22px,3vw,34px);border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface);overflow:hidden;transition:transform .24s ease,border-color .24s ease;animation:revealUp .62s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--project-index, 0) * 70ms)}.project-card:before{content:"";position:absolute;inset:auto 0 0 0;height:0;background:var(--ink);transition:height .36s cubic-bezier(.22,1,.36,1)}.project-card:hover:before{height:100%}.project-card:hover{color:var(--bg);transform:translateY(-4px)}.project-card>*{position:relative;z-index:1}.project-card__top,.project-meta,.project-link,.project-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-index,.project-area,.status,.project-meta,.tag-row span{font-size:11px;letter-spacing:.14em;text-transform:uppercase}.status{border:1px solid currentColor;padding:6px 9px}.status--active{background:var(--accent);color:var(--accent-ink)}.status--stable,.status--lab{background:transparent}.project-card__body{margin-top:auto;padding-top:100px}.project-card h3{margin:0;font-size:clamp(34px,5vw,70px);line-height:.92;letter-spacing:-.06em;max-width:100%;overflow-wrap:anywhere;word-break:break-word;text-wrap:balance}.project-title{display:inline;max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:left;text-transform:inherit;overflow-wrap:anywhere;word-break:break-word}.project-title:hover,.project-title:focus-visible{color:var(--accent);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.12em}.project-source{display:inline-block;max-width:100%;margin-top:12px;color:var(--quiet);font-size:11px;letter-spacing:.14em;text-transform:uppercase;overflow-wrap:anywhere;word-break:break-word}.project-card p{margin:22px 0 0;max-width:620px;color:var(--muted);line-height:1.75;text-wrap:pretty}.project-card:hover p,.project-card:hover .project-meta,.project-card:hover .project-source{color:color-mix(in srgb,var(--bg) 74%,transparent)}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.readme-excerpt{margin-top:24px;padding:14px;border:1px solid currentColor;background:color-mix(in srgb,var(--surface) 82%,transparent)}.readme-excerpt span{display:block;margin-bottom:8px;color:var(--quiet);font-size:10px;font-weight:800;letter-spacing:.16em}.readme-excerpt p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.project-card:hover .readme-excerpt{background:transparent}.project-card:hover .readme-excerpt p,.project-card:hover .readme-excerpt span{color:color-mix(in srgb,var(--bg) 74%,transparent)}.tag-row span{border:1px solid currentColor;padding:7px 9px;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.project-meta{justify-content:flex-start;margin-top:28px;color:var(--quiet);flex-wrap:wrap}.project-meta span{display:inline-flex;align-items:center;gap:4px}.project-details{margin:22px 0 0;padding:0;list-style:none;border-top:1px solid currentColor}.project-details li{padding:13px 0;border-bottom:1px solid currentColor;color:inherit;font-size:14px;line-height:1.55}.project-actions{justify-content:flex-start;flex-wrap:wrap;margin-top:30px}.project-link{min-height:46px;padding:0 14px;border:1px solid currentColor;background:transparent;color:inherit;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;cursor:pointer}.project-link span{margin-right:auto}.project-link--icon span{margin-right:0}.project-card:hover .project-link:hover{background:var(--bg);color:var(--ink)}.blog-console__body{display:flex;align-items:center;min-height:48px;padding:0 14px;border:1px solid var(--line-strong);background:var(--surface);color:var(--muted);font-size:13px;line-height:1.55;text-wrap:pretty}.blog-article-card{min-height:390px}.blog-article-card h3{font-size:clamp(24px,3.2vw,46px)}.blog-article-card .project-card__body{padding-top:70px}.blog-article-card .project-card__body p,.blog-article-card .readme-excerpt p{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.blog-article-card .project-card__body p{-webkit-line-clamp:3}.blog-article-card .readme-excerpt p{-webkit-line-clamp:4}.blog-reader-top h2{max-width:980px;overflow-wrap:anywhere;text-wrap:balance}.blog-reader__back--top{align-self:end;flex:0 0 auto;margin-bottom:0;justify-content:center}.blog-reader__back--top span{margin-right:0}.contact-section{width:min(100%,var(--max));margin:0 auto;padding:28px}.contact-frame{min-height:56dvh;display:flex;flex-direction:column;justify-content:center;padding:clamp(36px,6vw,72px);border:1px solid var(--line-strong);background:var(--surface)}.contact-frame h2{display:flex;flex-wrap:wrap;align-items:baseline;font-size:clamp(88px,18vw,240px);letter-spacing:-.09em}.contact-title__letter{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 .03em;border:1px solid transparent;background:transparent;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;overflow:hidden}.contact-title__letter:after{content:"";position:absolute;left:0;right:0;bottom:.2em;height:.08em;background:var(--accent);transform:translate(-110%);transition:transform .24s cubic-bezier(.22,1,.36,1)}.contact-title__letter:hover,.contact-title__letter:focus-visible,.contact-title__letter.is-active{transform:translateY(-.04em)}.contact-title__letter:hover:after,.contact-title__letter:focus-visible:after,.contact-title__letter.is-active:after{transform:translate(0)}.contact-readout{width:min(100%,620px);margin:10px 0 24px;padding:14px 16px;border:1px solid var(--line-strong);background:var(--bg)}.contact-readout span{display:block;margin-bottom:8px;color:var(--quiet);font-size:10px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.contact-readout p{margin:0;color:var(--muted);font-size:15px;line-height:1.65}.contact-readout:hover{border-color:var(--accent)}.contact-frame>p:not(.section-kicker){max-width:580px;color:var(--muted);font-size:18px;line-height:1.75}.page-panel{min-height:calc(100dvh - 106px);display:flex;flex-direction:column;justify-content:center}.page-panel__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr);gap:32px}.page-panel__grid>p{margin:0;color:var(--muted);font-size:20px;line-height:1.75;text-wrap:pretty}.page-panel__list{display:grid;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}.page-panel__item{display:grid;grid-template-columns:58px minmax(0,1fr);min-height:86px;border:0;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface);color:var(--ink);text-align:left;font:inherit;transition:background .22s ease,color .22s ease,transform .22s ease}.page-panel__item:hover,.page-panel__item:focus-visible{background:var(--ink);color:var(--bg);transform:translateY(-2px)}.page-panel__item span,.page-panel__item strong{display:flex;align-items:center;min-width:0;padding:18px}.page-panel__item span{border-right:1px solid currentColor;color:var(--quiet);font-size:10px;font-weight:900;letter-spacing:.14em}.page-panel__item strong{font-size:clamp(24px,3vw,44px);line-height:1;letter-spacing:-.04em;overflow-wrap:anywhere}.moments-page{width:min(100%,1120px);padding-top:clamp(36px,6vw,76px)}.moments-cover{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;min-height:clamp(260px,34vw,390px);padding:clamp(22px,4vw,42px);border:1px solid var(--line-strong);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 34%,transparent),transparent 28%),linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,transparent),var(--bg));overflow:hidden}.moments-cover:before{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border:1px solid var(--line);pointer-events:none}.moments-cover:after{content:attr(data-cover-label);position:absolute;right:clamp(18px,4vw,44px);top:clamp(18px,4vw,44px);color:color-mix(in srgb,var(--ink) 7%,transparent);font-size:clamp(34px,7vw,96px);font-weight:900;letter-spacing:-.07em;line-height:.84;pointer-events:none}.moments-cover__copy,.moments-profile{position:relative;z-index:1}.moments-cover__copy h2{max-width:720px;margin:0;font-size:clamp(64px,10vw,120px);line-height:1;letter-spacing:-.07em;text-wrap:balance}.moments-cover__copy span{display:block;max-width:540px;margin-top:20px;color:var(--muted);font-size:clamp(15px,2vw,19px);line-height:1.7}.moments-profile{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;align-items:center;min-width:min(360px,100%);padding:14px;border:1px solid var(--line-strong);background:var(--bg)}.moments-profile img,.moment-card__avatar img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--line-strong)}.moments-profile strong{display:block;font-size:22px;letter-spacing:-.03em}.moments-profile span{display:block;margin-top:8px;color:var(--quiet);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;overflow-wrap:anywhere}.moments-timeline{position:relative;display:grid;gap:22px;margin-top:34px}.moments-empty{margin:0;padding:26px 28px;border:1px solid var(--line-strong);font-size:.9rem;letter-spacing:.02em;color:var(--muted)}.moment-card{position:relative;z-index:1;display:block;cursor:pointer;animation:momentRise .56s cubic-bezier(.22,1,.36,1) calc(var(--moment-index) * 70ms) both;transition:transform .42s cubic-bezier(.16,1,.3,1),filter .42s ease}.moment-card:hover,.moment-card:focus-visible,.moment-card.is-selected{transform:translateY(-6px);filter:drop-shadow(0 16px 22px color-mix(in srgb,var(--ink) 18%,transparent))}.moment-card:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.moment-card__avatar{flex:0 0 64px;width:64px;padding:6px;background:var(--bg);transition:transform .42s cubic-bezier(.16,1,.3,1),background-color .26s ease}.moment-card:hover .moment-card__avatar,.moment-card:focus-visible .moment-card__avatar,.moment-card.is-selected .moment-card__avatar{transform:rotate(-3deg) scale(1.06);background:var(--accent)}.moment-card__body{min-width:0;padding:18px;border:1px solid var(--line-strong);background:var(--surface);transition:border-color .26s ease,background-color .42s ease}.moment-card:hover .moment-card__body,.moment-card:focus-visible .moment-card__body,.moment-card.is-selected .moment-card__body{border-color:var(--accent);background:color-mix(in srgb,var(--surface) 86%,var(--accent))}.moment-card__header{display:flex;align-items:flex-start;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.moment-card__identity{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex:1;min-width:0}.moment-card__name{min-width:0}.moment-card__name strong{display:block;font-size:20px;letter-spacing:-.03em}.moment-card__name>span{display:block;margin-top:7px;color:var(--quiet);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.moment-card__meta{display:grid;justify-items:start;gap:8px;min-width:min(230px,44%);padding:9px 10px;border-left:1px solid var(--line-strong);color:var(--muted);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.moment-card__meta span{display:inline-flex;align-items:center;gap:6px}.moment-card__body p{max-width:66ch;margin:16px 0 0;color:var(--ink);font-size:17px;line-height:1.85;text-wrap:pretty}.moment-media{display:block;width:min(520px,100%);max-width:100%;margin:16px 0 0;border:1px solid var(--line-strong);background:var(--bg);vertical-align:top}.moment-media img{display:block;width:100%;max-width:100%;height:auto}.blog-section{padding-top:clamp(46px,6vw,80px);padding-bottom:clamp(46px,6vw,80px)}.project-section.blog-section{padding-top:clamp(84px,11vw,148px);padding-bottom:clamp(84px,11vw,148px)}.blog-preview-shell{min-height:calc(100dvh - 168px);border:1px solid var(--line-strong);background:var(--surface)}.blog-preview-heading{display:grid;grid-template-columns:minmax(0,.9fr) minmax(260px,.7fr);gap:clamp(24px,5vw,64px);align-items:end;margin:0;padding:clamp(24px,4vw,42px);border-bottom:1px solid var(--line-strong)}.blog-preview-heading .section-kicker{grid-column:1 / -1}.blog-preview-heading h2{margin:0;font-size:clamp(54px,8vw,126px);line-height:.88}.blog-preview-heading>p:last-child{margin:0;color:var(--muted);font-size:15px;line-height:1.7;text-wrap:pretty}.blog-console{grid-template-columns:minmax(260px,1fr) minmax(260px,.78fr)}.blog-search{margin:0;background:var(--bg)}.blog-count{display:inline-flex;align-items:center;min-height:48px;padding:0 14px;border:1px solid var(--line-strong);background:var(--surface);color:var(--quiet);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}.blog-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:0}.blog-preview-card{position:relative;display:grid;grid-template-rows:auto auto minmax(92px,auto) 1fr auto auto;min-height:392px;padding:22px;border:0;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:color-mix(in srgb,var(--bg) 78%,transparent);color:var(--ink);text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;overflow:hidden;transition:background .22s ease,color .22s ease,transform .22s ease}.blog-preview-card:nth-child(3n){border-right:0}.blog-preview-card:before,.blog-preview-card:after{content:"";position:absolute;pointer-events:none;background:currentColor;opacity:.18;transition:transform .32s ease,opacity .22s ease}.blog-preview-card:before{inset:0 auto auto 0;width:100%;height:1px;transform:translate(-62%)}.blog-preview-card:after{inset:0 auto auto 0;width:1px;height:100%;transform:translateY(52%)}.blog-preview-card__number,.blog-preview-card__date{color:var(--quiet);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;transition:color .22s ease}.blog-preview-card__number{margin-bottom:12px}.blog-preview-card strong{max-width:100%;font-size:clamp(28px,3.6vw,52px);line-height:.95;letter-spacing:-.05em;overflow-wrap:anywhere;text-wrap:balance}.blog-preview-card__summary{max-width:52ch;margin-top:20px;color:var(--muted);font-size:15px;line-height:1.7;text-wrap:pretty;transition:color .22s ease}.blog-preview-card__tags{align-self:end;margin-top:24px}.blog-preview-card__action{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;margin-top:18px;padding:0 12px;border:1px solid currentColor;color:inherit;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.blog-preview-card:hover,.blog-preview-card:focus-visible{background:var(--ink);color:var(--bg);transform:translateY(-4px)}.blog-preview-card:hover:before,.blog-preview-card:focus-visible:before{opacity:.45;transform:translate(0)}.blog-preview-card:hover:after,.blog-preview-card:focus-visible:after{opacity:.45;transform:translateY(0)}.blog-preview-card:hover .blog-preview-card__number,.blog-preview-card:focus-visible .blog-preview-card__number{color:var(--accent)}.blog-preview-card:hover .blog-preview-card__date,.blog-preview-card:focus-visible .blog-preview-card__date,.blog-preview-card:hover .blog-preview-card__summary,.blog-preview-card:focus-visible .blog-preview-card__summary{color:color-mix(in srgb,var(--bg) 74%,transparent)}.blog-preview-card:hover .tag-row span,.blog-preview-card:focus-visible .tag-row span{border-color:color-mix(in srgb,var(--bg) 58%,transparent);color:var(--bg)}.blog-preview-card--empty{min-height:300px;pointer-events:none}.blog-layout{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:0;min-height:calc(100dvh - 168px);border:1px solid var(--line-strong);background:color-mix(in srgb,var(--surface) 74%,transparent)}.blog-layout--reader{grid-template-columns:1fr}.blog-index,.blog-reader{min-width:0}.blog-index{display:flex;flex-direction:column;border-right:1px solid var(--line-strong);background:var(--surface)}.blog-heading{margin:0;padding:clamp(24px,4vw,42px);border-bottom:1px solid var(--line-strong)}.blog-heading h2{font-size:clamp(44px,6vw,82px)}.blog-intro{margin:0;padding:22px clamp(24px,4vw,42px);border-bottom:1px solid var(--line-strong);color:var(--muted);font-size:15px;line-height:1.7}.blog-post-list{display:grid}.blog-post-button{display:grid;grid-template-columns:54px minmax(0,1fr);gap:0;min-height:112px;padding:0;border:0;border-bottom:1px solid var(--line-strong);background:transparent;color:var(--ink);text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;transition:background .22s ease,color .22s ease,transform .22s ease}.blog-post-button span,.blog-post-button strong,.blog-post-button em{min-width:0}.blog-post-button span{grid-row:1 / 3;display:flex;align-items:center;justify-content:center;border-right:1px solid currentColor;color:var(--quiet);font-size:10px;font-weight:900;letter-spacing:.14em}.blog-post-button strong{align-self:end;padding:18px 18px 4px;font-size:clamp(20px,2.2vw,32px);line-height:1;letter-spacing:-.04em;overflow-wrap:anywhere}.blog-post-button em{align-self:start;padding:0 18px 18px;color:var(--quiet);font-style:normal;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.blog-post-button:hover,.blog-post-button:focus-visible,.blog-post-button.is-active{background:var(--ink);color:var(--bg);transform:translate(4px)}.blog-post-button:hover span,.blog-post-button:focus-visible span,.blog-post-button.is-active span{color:var(--accent)}.blog-post-button:hover em,.blog-post-button:focus-visible em,.blog-post-button.is-active em{color:color-mix(in srgb,var(--bg) 68%,transparent)}.blog-reader{display:flex;flex-direction:column;padding:clamp(24px,4vw,52px);background:var(--bg)}.blog-reader__header{padding-bottom:28px;border-bottom:1px solid var(--line-strong)}.blog-reader__back{display:inline-flex;align-items:center;gap:9px;min-height:40px;margin-bottom:22px;padding:0 12px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;transition:background .22s ease,color .22s ease,transform .22s ease}.blog-reader__back:hover,.blog-reader__back:focus-visible{background:var(--ink);color:var(--bg);transform:translate(-4px)}.blog-reader__meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.blog-reader__meta span{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 10px;border:1px solid var(--line-strong);color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.blog-reader h1{margin:0;max-width:860px;font-size:clamp(44px,7vw,102px);line-height:.92;letter-spacing:-.06em;overflow-wrap:anywhere}.blog-reader__header>p{max-width:760px;margin:20px 0 0;color:var(--muted);font-size:17px;line-height:1.7;text-wrap:pretty}.blog-tags{margin-top:22px}.markdown-body{padding:clamp(24px,4vw,46px) 0;color:var(--ink)}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin:1.1em 0 .45em;line-height:1;letter-spacing:-.04em}.markdown-body h1{display:none}.markdown-body h2{font-size:clamp(28px,3.2vw,48px)}.markdown-body h3{font-size:clamp(22px,2.4vw,32px)}.markdown-body p,.markdown-body li{color:var(--muted);font-size:16px;line-height:1.82;text-wrap:pretty}.markdown-body p{max-width:860px}.markdown-body p:has(img){max-width:100%}.markdown-body img{display:block;width:auto;max-width:min(100%,860px);height:auto;margin:22px 0;border:1px solid var(--line-strong);background:var(--surface);object-fit:contain}.markdown-body a:has(img){display:inline-block;max-width:100%;text-decoration:none}.markdown-body ul,.markdown-body ol{display:grid;gap:8px;max-width:860px;margin:18px 0;padding-left:24px}.markdown-body a{color:var(--ink);text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:4px}.article-body-loading{margin:0;padding:18px 0;color:var(--muted);font-size:14px;letter-spacing:.02em}.markdown-body code{border:1px solid var(--line-strong);padding:.1em .35em;background:var(--surface);color:var(--ink);font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:.92em}.markdown-body pre{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding:18px;border:1px solid var(--line-strong);background:var(--surface);scrollbar-width:none;-ms-overflow-style:none}.markdown-body pre::-webkit-scrollbar{display:none;width:0;height:0}.markdown-body pre:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.markdown-body pre code{border:0;padding:0;background:transparent}.markdown-body .hljs-comment,.markdown-body .hljs-quote{color:var(--code-comment);font-style:italic}.markdown-body .hljs-keyword,.markdown-body .hljs-selector-tag,.markdown-body .hljs-literal,.markdown-body .hljs-section,.markdown-body .hljs-doctag,.markdown-body .hljs-name,.markdown-body .hljs-tag{color:var(--code-keyword)}.markdown-body .hljs-string,.markdown-body .hljs-regexp,.markdown-body .hljs-addition{color:var(--code-string)}.markdown-body .hljs-number,.markdown-body .hljs-symbol,.markdown-body .hljs-bullet{color:var(--code-number)}.markdown-body .hljs-title,.markdown-body .hljs-title.class_,.markdown-body .hljs-title.function_{color:var(--code-title);font-weight:600}.markdown-body .hljs-type,.markdown-body .hljs-built_in,.markdown-body .hljs-variable.language_{color:var(--code-type)}.markdown-body .hljs-attr,.markdown-body .hljs-attribute,.markdown-body .hljs-variable,.markdown-body .hljs-template-variable,.markdown-body .hljs-selector-attr,.markdown-body .hljs-property{color:var(--code-attr)}.markdown-body .hljs-meta,.markdown-body .hljs-meta .hljs-keyword{color:var(--code-meta)}.markdown-body .hljs-deletion{color:#d76b5f}.markdown-body .hljs-emphasis{font-style:italic}.markdown-body .hljs-strong{font-weight:700}::-webkit-scrollbar-button{display:none;width:0;height:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink) 24%,transparent)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}::-webkit-scrollbar-corner{background:transparent}.markdown-body blockquote{margin:24px 0;padding:18px 22px;border:1px solid var(--line-strong);background:var(--surface)}.markdown-body table{width:100%;border-collapse:collapse;margin:24px 0;border:1px solid var(--line-strong)}.markdown-body th,.markdown-body td{padding:12px;border:1px solid var(--line-strong);text-align:left}.markdown-body .katex-display{max-width:100%;overflow-x:auto;margin:24px 0;padding:18px;border:1px solid var(--line-strong);background:var(--surface)}.markdown-body .katex{color:var(--ink);font-size:1.04em}.blog-source-link{display:inline-flex;align-items:center;align-self:flex-start;gap:8px;min-height:40px;margin-top:auto;padding:0 12px;border:1px solid var(--line-strong);color:var(--muted);text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800}.blog-source-link:hover{background:var(--ink);color:var(--bg)}.theme-toggle{position:static;z-index:auto;display:inline-flex;position:relative;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);font-size:10px;font-weight:800;letter-spacing:.14em;cursor:pointer;overflow:hidden}.theme-toggle:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid currentColor;opacity:0;transform:scaleX(0);transform-origin:left}.theme-toggle svg,.theme-toggle span{position:relative;z-index:1}.theme-toggle svg{transition:transform .42s cubic-bezier(.16,1,.3,1)}.theme-toggle.is-switching svg{transform:rotate(180deg) scale(1.12)}.theme-toggle.is-switching:before{animation:themeToggleScan .76s cubic-bezier(.16,1,.3,1) both}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.platform-page{width:min(100%,1120px);min-height:100%;margin:0 auto;padding:clamp(36px,6vw,76px) 28px 80px}.platform-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:end;min-height:clamp(260px,34vw,390px);padding:clamp(22px,4vw,42px);border:1px solid var(--line-strong);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 34%,transparent),transparent 28%),linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,transparent),var(--bg));overflow:hidden}.platform-hero:before{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border:1px solid var(--line);pointer-events:none}.platform-hero:after{content:attr(data-cover-label);position:absolute;right:clamp(18px,4vw,44px);top:clamp(18px,4vw,44px);max-width:52%;color:color-mix(in srgb,var(--ink) 7%,transparent);font-size:clamp(34px,7vw,96px);font-weight:900;letter-spacing:-.07em;line-height:.84;pointer-events:none}.platform-hero>*{position:relative;z-index:1}.platform-hero h1{max-width:850px;margin:0;font-size:clamp(56px,10vw,138px);line-height:.84;letter-spacing:-.08em}.platform-hero>p:not(.section-kicker){max-width:680px;margin:0;color:var(--muted);font-size:16px;line-height:1.75}.platform-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.platform-tags span{padding:8px 10px;border:1px solid var(--line);color:var(--muted);font-size:10px;letter-spacing:.13em}.platform-section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:clamp(34px,6vw,74px) 0 18px}.platform-section-heading h2{margin:7px 0 0;font-size:clamp(32px,5vw,64px);letter-spacing:-.07em}.platform-section-heading>span{color:var(--quiet);font-size:10px;font-weight:800;letter-spacing:.15em}.platform-section-heading--tools{align-items:center}.platform-search{width:min(100%,330px);margin:0}.platform-search input{width:100%;min-height:48px;padding:0;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:12px;letter-spacing:.08em}.platform-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.platform-card,.platform-resource{position:relative;overflow:hidden;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.platform-card{padding:clamp(22px,3vw,34px)}.platform-card:before,.platform-resource:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--ink);transform:scaleY(0);transform-origin:center bottom;transition:transform .65s cubic-bezier(.16,1,.3,1)}.platform-card>*,.platform-resource>*{position:relative;z-index:1}.platform-card:hover,.platform-card.is-selected,.platform-resource:hover,.platform-resource.is-selected{color:var(--bg)}.platform-card:hover:before,.platform-card.is-selected:before,.platform-resource:hover:before,.platform-resource.is-selected:before{transform:scaleY(1)}.platform-card:focus-visible,.platform-resource:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.platform-card__top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px;letter-spacing:.15em}.platform-card__top b{border:1px solid currentColor;padding:5px 7px;font-size:9px;font-weight:700;text-transform:uppercase}.platform-card h3{margin:25px 0 0;font-size:28px;letter-spacing:-.05em}.platform-card>strong{display:block;margin-top:38px;font-size:clamp(32px,5vw,58px);letter-spacing:-.07em}.platform-card>p{margin:6px 0 0;color:var(--muted);font-size:11px}.platform-card__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.platform-card__actions a,.platform-resource__download{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid currentColor;color:inherit;text-decoration:none;font-size:10px;letter-spacing:.12em}.platform-card__actions a:first-child{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.platform-card:hover .platform-card__actions a,.platform-card.is-selected .platform-card__actions a{background:var(--bg);border-color:var(--bg);color:var(--ink)}.platform-version-list{display:grid;gap:0;margin-top:26px;border-top:1px solid var(--line)}.platform-version-list a{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;font-size:11px}.platform-version-list em{color:var(--muted);font-style:normal;font-size:10px}.platform-version-list b{color:var(--accent);font-size:9px;letter-spacing:.1em}.platform-card:hover .platform-card__top,.platform-card:hover>p,.platform-card.is-selected .platform-card__top,.platform-card.is-selected>p,.platform-card:hover .platform-version-list em,.platform-card.is-selected .platform-version-list em{color:color-mix(in srgb,var(--bg) 72%,transparent)}.platform-state{padding:38px;border:1px solid var(--line-strong);color:var(--muted);text-align:center}.platform-state--error{color:var(--ink);text-align:left}.resource-card-list{display:grid;gap:9px}.platform-resource{display:grid;grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:20px;padding:16px}.platform-resource__format{display:grid;place-items:center;min-height:56px;border:1px solid currentColor;background:var(--accent);color:var(--accent-ink);font-size:10px;font-weight:900}.platform-resource__title{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.platform-resource__title h3{margin:0;font-size:17px}.platform-resource__title span{color:var(--muted);font-size:10px;letter-spacing:.1em}.platform-resource p{margin:7px 0;color:var(--muted);font-size:12px}.platform-resource small{color:var(--quiet);font-size:10px}.platform-resource:hover .platform-resource__title span,.platform-resource:hover p,.platform-resource:hover small,.platform-resource.is-selected .platform-resource__title span,.platform-resource.is-selected p,.platform-resource.is-selected small{color:color-mix(in srgb,var(--bg) 72%,transparent)}.firmware-hero-actions,.daplink-hero-actions{margin-top:8px}.platform-card__actions button{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;font-size:10px;letter-spacing:.12em}.platform-card__actions button:disabled{cursor:not-allowed;opacity:.42}.platform-card__actions button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.daplink-card-grid{align-items:stretch}.daplink-card{min-height:100%}.daplink-card h3{overflow-wrap:anywhere}.daplink-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;margin:24px 0 0;border-top:1px solid var(--line)}.daplink-metrics div{min-width:0;padding:12px 0;border-bottom:1px solid var(--line)}.daplink-metrics dt{color:var(--quiet);font-size:9px;letter-spacing:.14em}.daplink-metrics dd{margin:6px 0 0;color:var(--muted);font:11px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.daplink-file{display:grid;gap:8px;margin-top:22px;color:var(--muted);font-size:11px}.daplink-file input[type=file]{width:100%;min-height:40px;padding:8px;border:1px solid var(--line);background:transparent;color:inherit;font:inherit;font-size:11px}.daplink-file input[type=file]::file-selector-button{margin-right:10px;padding:6px 8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:10px;cursor:pointer}.daplink-file small{color:var(--quiet);font:10px ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.daplink-inline-fields{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:22px}.daplink-inline-fields label{display:grid;gap:8px;color:var(--muted);font-size:11px}.daplink-inline-fields input{min-height:38px;padding:0 10px;border:1px solid var(--line);background:transparent;color:inherit;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}.daplink-inline-fields button{min-height:38px;padding:0 12px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;font-size:10px;letter-spacing:.12em}.daplink-inline-fields button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.daplink-progress{height:5px;margin-top:24px;border:1px solid var(--line);background:transparent}.daplink-progress i{display:block;height:100%;background:var(--accent);transition:width .24s ease}.daplink-progress-meta{display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:var(--quiet);font-size:10px;letter-spacing:.08em}.daplink-wide-button{width:100%;margin-top:20px}.daplink-log{min-height:132px;padding:20px;text-align:left;font:11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.daplink-log p{margin:0;color:var(--muted);overflow-wrap:anywhere}.daplink-log p.ok{color:var(--accent)}.daplink-log p.warn{color:var(--quiet)}.daplink-log p.err{color:#d76b5f}.daplink-card:hover .daplink-metrics,.daplink-card.is-selected .daplink-metrics,.daplink-card:hover .daplink-metrics div,.daplink-card.is-selected .daplink-metrics div{border-color:color-mix(in srgb,var(--bg) 30%,transparent)}.daplink-card:hover .daplink-metrics dd,.daplink-card.is-selected .daplink-metrics dd{color:color-mix(in srgb,var(--bg) 72%,transparent)}.daplink-card:hover .daplink-inline-fields input,.daplink-card.is-selected .daplink-inline-fields input{border-color:color-mix(in srgb,var(--bg) 36%,transparent)}@media(max-width:560px){.daplink-metrics,.daplink-inline-fields{grid-template-columns:1fr}.daplink-inline-fields button{justify-self:start}}@media(max-width:720px){.platform-card-grid{grid-template-columns:1fr}.platform-section-heading,.platform-section-heading--tools{align-items:flex-start;flex-direction:column}.platform-search,.platform-search input{width:100%}.platform-resource{grid-template-columns:56px minmax(0,1fr)}.platform-resource__download{grid-column:2;justify-self:start}}@media(max-width:560px){.platform-page{padding:20px}.platform-hero{min-height:360px;padding:22px 20px}.platform-hero:before{top:10px;right:10px;bottom:10px;left:10px}.platform-hero:after{right:16px;top:16px;max-width:240px;font-size:clamp(42px,16vw,76px)}.platform-hero h1{font-size:clamp(52px,18vw,90px)}.platform-card:before,.platform-resource:before{transform:scaleY(0);transform-origin:center bottom}.platform-card:hover:before,.platform-card.is-selected:before,.platform-resource:hover:before,.platform-resource.is-selected:before{transform:scaleY(1)}}@keyframes revealUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes visualWake{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes drawFrame{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes lineConverge{0%{opacity:0;stroke-dashoffset:120;transform:translate(var(--drift-x),var(--drift-y)) rotate(var(--drift-rotate)) scale(.72)}42%{opacity:.58;stroke-dashoffset:88;transform:translate(var(--drift-mid-x),var(--drift-mid-y)) rotate(var(--drift-mid-rotate)) scale(.92)}72%{opacity:.88;stroke-dashoffset:26;transform:translate(var(--drift-overshoot-x),var(--drift-overshoot-y)) rotate(0) scale(1.02)}to{opacity:1;stroke-dashoffset:0;transform:translate(0) rotate(0) scale(1)}}@keyframes linePulse{0%,to{opacity:.92;stroke-width:8}50%{opacity:1;stroke-width:9}}@keyframes calibrationSettle{0%{opacity:0;stroke-dashoffset:120;transform:translate(var(--drift-x),var(--drift-y)) rotate(var(--drift-rotate))}70%{opacity:.54;stroke-dashoffset:10;transform:translate(var(--drift-cal-x),var(--drift-cal-y)) rotate(0)}to{opacity:.34;stroke-dashoffset:0;transform:translate(0) rotate(0)}}@keyframes calibrationBlink{0%,to{opacity:.24}50%{opacity:.58}}@keyframes fieldMeasure{0%,to{opacity:.18;transform:scaleX(.82) scaleY(.62)}50%{opacity:.38;transform:scaleX(.96) scaleY(.78)}}@keyframes scanAcross{0%{transform:translate(-100%)}42%,to{transform:translate(100%)}}@keyframes drawX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes drawY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes drawBarA{0%{transform:rotate(18deg) scaleX(0)}to{transform:rotate(18deg) scaleX(1)}}@keyframes drawBarB{0%{transform:rotate(-26deg) scaleX(0)}to{transform:rotate(-26deg) scaleX(1)}}@keyframes nodePulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 0%,transparent)}50%{box-shadow:0 0 0 9px color-mix(in srgb,var(--accent) 24%,transparent)}}@keyframes scanX{0%{transform:translate(0)}50%{transform:translate(210%)}to{transform:translate(0)}}@keyframes scanY{0%{transform:translateY(0)}50%{transform:translateY(250%)}to{transform:translateY(0)}}@keyframes ringPulse{0%{opacity:0;transform:scale(.4)}28%{opacity:.8}to{opacity:0;transform:scale(1.45)}}@keyframes signalLevel{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes sweepLight{0%{transform:translate(-120%)}46%,to{transform:translate(120%)}}@keyframes pageSwitch{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes themeToggleScan{0%{opacity:0;transform:scaleX(0)}36%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:translate(22%) scaleX(1)}}@keyframes momentRise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.site-header{grid-template-columns:auto minmax(0,1fr) auto;padding:0 18px;gap:10px}.site-nav{justify-content:start;gap:6px}.header-github span,.theme-toggle span{display:none}.hero-grid,.profile-layout,.project-grid{grid-template-columns:1fr}.hero-copy,.hero-visual{min-height:auto}.hero-copy{border-right:0;border-bottom:1px solid var(--line-strong)}.hero-visual{min-height:520px}.stat-grid{grid-template-columns:1fr}.project-header{align-items:start;flex-direction:column}.project-console,.page-panel__grid,.moments-cover{grid-template-columns:1fr}.moments-profile{width:min(420px,100%)}.moment-card__meta{justify-items:start}.blog-preview-heading{grid-template-columns:1fr;gap:18px}.blog-console{grid-template-columns:1fr}.blog-article-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.blog-article-card{min-height:360px;padding:18px}.blog-article-card .project-card__body{padding-top:52px}.blog-count{justify-content:center}.blog-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-preview-card:nth-child(3n){border-right:1px solid var(--line-strong)}.blog-preview-card:nth-child(2n){border-right:0}.blog-layout{grid-template-columns:1fr}.blog-index{border-right:0;border-bottom:1px solid var(--line-strong)}.blog-post-list{grid-template-columns:repeat(3,minmax(220px,1fr));overflow-x:auto}.blog-post-button{border-right:1px solid var(--line-strong)}.filter-row{overflow-x:auto}}@media(max-width:620px){body{background-size:72px 72px}.site-header{grid-template-columns:auto minmax(0,1fr) auto;min-height:64px;padding:10px;gap:8px;top:32px}.brand-mark{width:58px;height:36px}.site-nav{justify-content:start;flex-wrap:nowrap}.site-nav button.is-active{order:-1}.site-nav button{min-height:36px;padding:0 10px;font-size:10px}.header-github,.theme-toggle{width:38px;min-height:36px;padding:0;justify-content:center}.page-shell{padding-top:96px}.page-view{height:calc(100dvh - 96px);min-height:calc(100dvh - 96px)}.page-view>.section,.page-view>.hero-section{min-height:calc(100dvh - 96px)}.hero-grid,.section,.contact-section{border-left:0;border-right:0}.hero-copy{padding:60px 20px}.hero-copy h1{font-size:clamp(78px,31vw,132px)}.hero-actions,.contact-actions{flex-direction:column}.button,.project-link{width:100%}.hero-visual{min-height:420px}.section{padding-left:20px;padding-right:20px}.moments-page{padding-top:20px}.moments-cover{min-height:360px;padding:22px 20px}.moments-cover:before{top:10px;right:10px;bottom:10px;left:10px}.moments-cover:after{right:16px;top:16px;max-width:240px;font-size:clamp(42px,16vw,76px)}.moments-cover__copy h2{font-size:clamp(48px,16vw,78px)}.moments-profile{grid-template-columns:68px minmax(0,1fr);padding:10px}.moments-timeline{gap:18px}.moment-card__body{padding:14px}.moment-card__header{gap:12px}.moment-card__avatar{flex-basis:54px;width:54px;padding:4px}.moment-card__identity{flex-direction:column;gap:12px}.moment-card__meta{width:100%;min-width:0;border-left:0;border-top:1px solid var(--line-strong);padding:10px 0 0}.project-card{min-height:380px}.blog-section{padding-top:20px;padding-bottom:20px}.blog-preview-shell{min-height:auto}.blog-preview-heading{padding:24px 20px}.blog-console{padding:0}.blog-preview-heading h2{font-size:clamp(48px,18vw,82px)}.blog-preview-grid,.blog-article-grid{grid-template-columns:1fr}.blog-preview-card,.blog-preview-card:nth-child(2n),.blog-preview-card:nth-child(3n){min-height:330px;border-right:0}.blog-preview-card strong{font-size:clamp(30px,11vw,46px)}.blog-layout{min-height:auto}.blog-heading,.blog-intro,.blog-reader{padding-left:20px;padding-right:20px}.blog-post-list{grid-template-columns:1fr;overflow-x:visible}.blog-post-button{min-height:98px;border-right:0}.blog-reader h1{font-size:clamp(42px,14vw,68px)}.custom-cursor{display:none}}@media(pointer:coarse){.custom-cursor{display:none}}.admin-screen{min-height:100dvh;padding:132px clamp(20px,5vw,76px) 64px;background:var(--bg);color:var(--ink)}.chunk-fallback{display:grid;gap:16px;justify-items:start;align-content:center;min-height:60dvh;padding:0 clamp(20px,5vw,76px)}.chunk-fallback p{margin:0;color:var(--muted);font-size:14px}.admin-login{width:min(460px,100%);margin:12vh auto 0;padding:34px;border:1px solid var(--line-strong);background:var(--surface);display:grid;gap:16px}.admin-login h1,.admin-header h1{margin:0;font-size:clamp(34px,5vw,64px);letter-spacing:-.03em}.admin-login p{margin:0;color:var(--muted)}.admin-login label,.admin-form label{display:grid;gap:7px;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.admin-login input,.admin-form input,.admin-form textarea,.admin-settings textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);background:transparent;color:var(--ink);padding:11px 12px;font:inherit;font-size:13px;letter-spacing:0;text-transform:none}.admin-header{display:flex;justify-content:space-between;align-items:end;gap:24px;max-width:1440px;margin:0 auto 30px}.admin-header-actions,.admin-form-actions{display:flex;flex-wrap:wrap;gap:10px}.admin-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 15px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);text-decoration:none;cursor:pointer;font:inherit;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.admin-button--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.admin-button--danger{color:#d76b5f;border-color:#d76b5f}.admin-tabs{display:flex;gap:0;max-width:1440px;margin:0 auto 18px;border-bottom:1px solid var(--line-strong)}.admin-tabs button{min-height:42px;padding:0 18px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:11px;letter-spacing:.12em}.admin-tabs button.is-active{border-bottom-color:var(--accent);color:var(--ink)}.admin-grid{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.6fr);gap:18px;max-width:1440px;margin:0 auto;align-items:start}.admin-panel{min-width:0;padding:22px;border:1px solid var(--line);background:var(--surface)}.admin-panel h2{margin:0;font-size:18px}.admin-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.admin-form{display:grid;gap:14px}.admin-form-row{display:grid;grid-template-columns:.7fr 1.3fr;gap:12px}.admin-editor{resize:vertical;min-height:180px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;line-height:1.6}.admin-check{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:8px!important;text-transform:none!important;letter-spacing:0!important}.admin-check input{width:16px}.admin-error,.admin-notice{display:block;max-width:1440px;margin:0 auto 12px;padding:10px 12px;border:1px solid #d76b5f;color:#d76b5f;font-size:12px}.admin-notice{border-color:var(--accent);color:var(--ink)}.admin-settings{max-width:1440px;margin:0 auto;display:grid;gap:14px}.admin-settings p{margin:0;color:var(--muted);font-size:12px}.admin-json{min-height:520px}.admin-content-form{max-width:1440px;margin:0 auto}.admin-fieldset{border:1px solid var(--line);padding:14px 16px 18px;margin:0;display:grid;gap:14px}.admin-fieldset legend{padding:0 8px;color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.admin-field-hint{display:block;margin-top:-3px;color:var(--muted);font-size:11px;letter-spacing:0;text-transform:none}.admin-form .admin-upload{justify-self:start}.admin-image-preview{display:grid;gap:10px;justify-items:start}.admin-image-preview img{display:block;width:100%;max-width:320px;height:auto;border:1px solid var(--line);background:var(--surface)}.admin-image-preview .admin-button{min-height:34px}.admin-upload{position:relative;overflow:hidden}.admin-upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.admin-form label.admin-button{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}.admin-form label.admin-button:hover{color:var(--bg)}.admin-form label.admin-button svg{flex:0 0 auto}.admin-button,.admin-tabs button,.admin-post-item,.admin-form input,.admin-form textarea,.admin-login input{transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}.admin-button:hover{background:var(--ink);color:var(--bg);border-color:var(--line-strong);transform:translateY(-2px)}.admin-button:active{transform:translateY(0)}.admin-button--primary:hover{background:var(--accent-ink);color:var(--accent);border-color:var(--accent-ink)}.admin-button--danger:hover{background:#d76b5f;color:var(--bg);border-color:#d76b5f}.admin-button:disabled{opacity:.45;cursor:not-allowed;transform:none;background:transparent;color:var(--ink);border-color:var(--line)}.admin-button--primary:disabled{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.admin-tabs button:hover{color:var(--ink);border-bottom-color:var(--line-strong)}.admin-post-item:hover:not(.is-active),.admin-mobile-posts button:hover:not(.is-active){background:var(--ink);color:var(--bg)}.admin-post-item:hover:not(.is-active) span,.admin-mobile-posts button:hover:not(.is-active) span{color:color-mix(in srgb,var(--bg) 68%,transparent)}.admin-form input:hover,.admin-form textarea:hover,.admin-login input:hover{border-color:var(--line-strong)}.admin-form input:focus,.admin-form textarea:focus,.admin-login input:focus{outline:none;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}.admin-form input[readonly]{color:var(--muted);cursor:default}.admin-form input[readonly]:hover,.admin-form input[readonly]:focus{border-color:var(--line);background:transparent}.admin-fieldset:focus-within{border-color:var(--line-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}@media(prefers-reduced-motion:reduce){.admin-button:hover,.admin-button:active{transform:none}}@media(max-width:820px){.admin-header{align-items:start;flex-direction:column}.admin-grid{grid-template-columns:1fr}}@media(max-width:620px){.admin-screen{padding-top:112px}}@media(max-width:560px){.admin-screen{padding:112px 14px 32px}.admin-panel,.admin-login{padding:18px}.admin-form-row{grid-template-columns:1fr}}.admin-post-workspace{display:grid;grid-template-columns:minmax(220px,.38fr) minmax(0,1.62fr);gap:18px;max-width:1600px;margin:0 auto;align-items:start}.admin-post-list{position:sticky;top:110px;max-height:calc(100dvh - 150px);overflow:auto}.admin-post-list .admin-panel-heading>span{color:var(--muted);font:11px ui-monospace,SFMono-Regular,Consolas,monospace}.admin-post-item{display:grid;gap:6px;width:100%;padding:15px 10px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.admin-post-item strong{overflow-wrap:anywhere;font-size:14px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.admin-post-item span{color:var(--muted);font-size:10px;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-post-item.is-active{color:var(--accent-ink);background:var(--accent)}.admin-post-item.is-active span{color:color-mix(in srgb,var(--accent-ink) 70%,transparent)}.admin-post-edit-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;min-width:0;height:clamp(680px,calc(100dvh - 170px),900px);align-items:stretch}.admin-editor-pane{min-width:0}.admin-editor-pane{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.admin-editor-pane::-webkit-scrollbar{width:8px}.admin-editor-pane::-webkit-scrollbar-track{background:transparent}.admin-editor-pane::-webkit-scrollbar-thumb{background:var(--line-strong)}.admin-editor-pane .admin-panel-heading{align-items:end}.admin-editor-pane .admin-panel-heading h2{margin-top:4px}.admin-editor-pane .admin-editor{min-height:500px;height:clamp(500px,68vh,780px);resize:vertical}.admin-editor-pane .admin-form-actions svg,.admin-settings .admin-form-actions svg{flex:0 0 auto}.admin-preview-reader{min-width:0;min-height:0;max-width:none;height:100%;max-height:100%;margin:0;padding:28px;border:1px solid var(--line);background:var(--surface);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.admin-preview-reader::-webkit-scrollbar{width:8px}.admin-preview-reader::-webkit-scrollbar-track{background:transparent}.admin-preview-reader::-webkit-scrollbar-thumb{background:var(--line-strong)}.admin-preview-reader .blog-reader__header h1{margin:18px 0 0;font-size:clamp(34px,3vw,58px);line-height:1.04;overflow-wrap:anywhere}.admin-preview-reader .blog-reader__header>p{margin-top:14px}.admin-mobile-screen{min-height:calc(100dvh - 96px)}.admin-mobile-readonly{max-width:900px;margin:0 auto}.admin-mobile-hint{margin:0 0 20px;color:var(--muted)}.admin-mobile-posts{display:grid;gap:0;margin-bottom:20px;border-top:1px solid var(--line)}.admin-mobile-posts button{display:flex;justify-content:space-between;gap:12px;padding:14px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.admin-mobile-posts button span{color:var(--muted);font-size:11px;white-space:nowrap}.admin-mobile-posts button.is-active{color:var(--accent-ink);background:var(--accent)}@media(max-width:1180px)and (min-width:721px){.admin-post-workspace{grid-template-columns:minmax(190px,.32fr) minmax(0,1.68fr)}.admin-post-edit-grid{grid-template-columns:1fr}.admin-post-edit-grid{height:auto}.admin-editor-pane{height:auto;overflow:visible}.admin-editor-pane .admin-editor{height:520px}.admin-preview-reader{order:2}}@media(max-width:720px){.admin-screen{padding-top:112px}.admin-post-edit-grid{height:auto}.admin-editor-pane{height:auto;overflow:visible}.admin-editor-pane .admin-editor{height:360px;min-height:360px}.admin-header{margin-bottom:18px}.admin-mobile-readonly{padding-top:18px}.admin-mobile-readonly .admin-panel-heading{align-items:start}.admin-mobile-readonly .admin-panel-heading h1{margin:4px 0 0;font-size:clamp(34px,12vw,58px)}.admin-mobile-readonly .admin-preview-reader{padding:20px}.admin-mobile-readonly .admin-preview-reader .blog-reader__header h1{font-size:clamp(30px,10vw,48px)}}:root{--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.22, 1.25, .36, 1)}.page-view{animation:pageSwitch .56s var(--ease-out) backwards}.hero-copy h1{animation:none}.hero-brand__glyph{display:inline-block;animation:glyphRise 1.05s var(--ease-out) calc(.1s + var(--letter-index) * .11s) backwards}.hero-brand__letter{transition:color .24s ease,background-color .24s ease,border-color .24s ease,transform .55s var(--ease-spring)}.hero-brand__letter:after{transition:transform .58s var(--ease-out)}.hero-brand__letter:active{transform:translateY(-.01em) scale(.96)}.hero-actions{animation-delay:.44s}.hero-copy .section-kicker{animation-duration:.65s}.hero-visual{perspective:1000px}.hero-visual:focus-visible{outline:2px solid var(--accent);outline-offset:-5px}.hero-visual:before{display:none}.hero-target{position:absolute;z-index:3;pointer-events:none;border:1px solid var(--accent);background:linear-gradient(90deg,transparent 49%,var(--accent) 50%,transparent 51%),linear-gradient(0deg,transparent 49%,var(--accent) 50%,transparent 51%);left:50%;top:43%;width:92px;height:92px;opacity:0;transform:translate(-50%,-50%) scale(.7) rotate(-45deg);transition:opacity .4s ease,scale .65s var(--ease-spring),border-color .3s ease}.hero-visual:hover .hero-target,.hero-visual:focus-visible .hero-target{width:92px;height:92px;opacity:.65;scale:1.15}.hero-visual:after{background:linear-gradient(110deg,transparent 30%,color-mix(in srgb,var(--accent) 16%,transparent) 49%,transparent 67%);animation:sweepLight 8s var(--ease-out) 1.2s infinite;opacity:.45}.hero-visual.is-armed{background:color-mix(in srgb,var(--surface) 72%,transparent)}.hero-atmosphere{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;pointer-events:none;background:radial-gradient(ellipse at 52% 42%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 58%),linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:auto,48px 48px,48px 48px;-webkit-mask-image:radial-gradient(ellipse at 50% 42%,#000,transparent 74%);mask-image:radial-gradient(ellipse at 50% 42%,#000,transparent 74%);opacity:.35;transition:opacity .8s ease}.hero-visual.is-armed .hero-atmosphere{opacity:.8}.hero-orbits{position:absolute;top:7%;right:5%;bottom:24%;left:5%;pointer-events:none}.hero-orbits i{position:absolute;width:88%;aspect-ratio:1;left:6%;top:10%;border:1px solid var(--line);border-radius:50%;animation:orbitTurn 36s linear infinite}.hero-orbits i:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid transparent;border-top-color:var(--accent);border-radius:inherit;opacity:.65}.hero-orbits i:nth-child(2){inset:17% auto auto 14%;width:72%;animation-direction:reverse;animation-duration:28s}.hero-orbits i:nth-child(3){inset:25% auto auto 22%;width:56%;border-style:dashed;opacity:.4;animation-duration:44s}.line-field{background:color-mix(in srgb,var(--surface) 22%,transparent);animation:frameArrival 1.1s var(--ease-out) .16s backwards;transition:border-color .4s ease}.hero-visual:hover .line-field{transform:none}.line-field:before{opacity:.16;animation-duration:7s}.line-field:after{top:42%;animation-duration:6.8s}.line-field__svg{transform:translate3d(0,-18px,0) scale(1.02);transition:none}.line-field__stroke{opacity:1;stroke-dashoffset:0;transition:stroke .65s ease;animation:lineConverge 1.75s var(--ease-out) var(--stroke-delay) backwards}.line-field__stroke--calibration{opacity:.42;animation:calibrationSettle 1.5s var(--ease-out) var(--stroke-delay) backwards}.line-field__float{position:absolute;top:0;right:0;bottom:0;left:0;animation:wordBreathe 8s ease-in-out 2.6s infinite}.line-field__readout{bottom:auto;top:22px;background:var(--bg);animation-delay:.9s}.line-field__readout span{color:var(--ink)}.signal-card{z-index:4;transition:background-color .4s ease,color .4s ease,border-color .4s ease;animation:revealUp .9s var(--ease-out) .55s backwards}.signal-card span,.signal-card em{transition:color .4s ease}.signal-card strong{animation:signalText .45s var(--ease-out)}.signal-ripple{position:absolute;left:50%;top:43%;width:180px;aspect-ratio:1;border:1px solid var(--accent);border-radius:50%;translate:-50% -50%;opacity:0;pointer-events:none;z-index:2}.hero-visual.is-armed .signal-ripple{animation:signalRipple 1.05s var(--ease-out) both}.motion-paused *,.motion-paused:before,.motion-paused:after,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.site-nav button{position:relative}.site-nav button:after{content:"";position:absolute;left:8px;right:8px;bottom:4px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}.site-nav button.is-active:after,.site-nav button:hover:after{transform:scaleX(1)}.button{position:relative;overflow:hidden;isolation:isolate;transition:background-color .3s ease,color .3s ease,transform .45s var(--ease-spring)}.button:after{content:"";position:absolute;top:-40%;right:-20%;bottom:-40%;left:-20%;pointer-events:none;background:linear-gradient(110deg,transparent 35%,color-mix(in srgb,var(--accent) 32%,transparent) 50%,transparent 65%);transform:translate(-110%);transition:transform .7s var(--ease-out)}.button:hover:after{transform:translate(110%)}.button:hover{transform:translateY(-3px)}.button:active{transform:translateY(0) scale(.97)}.button svg,.project-link svg,.header-github svg{transition:transform .45s var(--ease-spring)}.button:hover svg,.project-link:hover svg{transform:translate(2px,-2px)}.header-github:hover svg{transform:rotate(-12deg)}.project-card{transition:transform .5s var(--ease-out),border-color .3s ease,color .3s ease;animation-fill-mode:backwards}.project-card:before{height:100%;transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease-out)}.project-card:hover:before{transform:scaleY(1)}.project-card:hover{transform:translateY(-3px)}.project-card p,.project-source,.project-meta,.readme-excerpt p,.readme-excerpt span{transition:color .32s ease}.moment-media{overflow:hidden}.moment-media img{transition:transform .9s var(--ease-out)}@media(hover:hover)and (pointer:fine){.moment-media:hover img{transform:scale(1.035)}}[data-reveal]{animation:none;opacity:0;translate:0 26px}[data-reveal][data-revealed=true]{opacity:1;translate:0 0;animation:scrollArrival .78s var(--ease-out) var(--reveal-delay, 0ms) backwards}[data-reveal][data-revealed=static]{opacity:1;translate:none;animation:none}.custom-cursor{position:fixed;left:0;top:0;z-index:100;width:0;height:0;opacity:0;pointer-events:none;transition:opacity .18s ease}.custom-cursor--visible{opacity:1}.custom-cursor__reticle{display:block;position:absolute;width:32px;height:32px;left:-16px;top:-16px;border:1px solid var(--ink);background:color-mix(in srgb,var(--bg) 8%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--bg) 60%,transparent);transition:transform .45s var(--ease-spring),border-color .25s ease}.custom-cursor__reticle:before,.custom-cursor__reticle:after{content:"";position:absolute;background:var(--ink)}.custom-cursor__reticle:before{width:6px;height:1px;left:12px;top:15px}.custom-cursor__reticle:after{width:1px;height:6px;left:15px;top:12px}.custom-cursor--active .custom-cursor__reticle{transform:rotate(45deg) scale(1.45);border-color:var(--accent)}.custom-cursor--pressed .custom-cursor__reticle{transform:rotate(90deg) scale(.8)}.custom-cursor span{position:absolute;left:28px;top:24px;padding:5px 8px;background:var(--ink);color:var(--bg);white-space:nowrap;font-size:9px;font-weight:800;letter-spacing:.12em;line-height:1.2;opacity:0;transform:translate(-5px,-3px);transition:opacity .2s ease,transform .4s var(--ease-out)}.custom-cursor--active span{opacity:1;transform:translate(0)}html[data-theme-transition]::view-transition-old(root),html[data-theme-transition]::view-transition-new(root){animation:none;mix-blend-mode:normal}html[data-theme-transition]::view-transition-old(root){z-index:1}html[data-theme-transition]::view-transition-new(root){z-index:2}html[data-theme-transition]::view-transition-group(root){animation-duration:.72s}html[data-theme-transition] .custom-cursor{visibility:hidden}html::view-transition{pointer-events:none}@keyframes glyphRise{0%{opacity:0;transform:translateY(105%) rotate(7deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes frameArrival{0%{opacity:0;scale:.92 .96}to{opacity:1;scale:1}}@keyframes orbitTurn{to{transform:rotate(360deg)}}@keyframes wordBreathe{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes signalRipple{0%{opacity:.8;transform:scale(.3)}to{opacity:0;transform:scale(3.8)}}@keyframes signalText{0%{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}@keyframes scrollArrival{0%{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}@media(max-width:900px){.hero-orbits{top:0;right:12%;bottom:20%;left:12%}.hero-orbits i:nth-child(3){display:none}}@media(hover:none),(pointer:coarse){.hero-target{display:none}.hero-visual:after,.line-field:before{animation:none;opacity:0}.hero-orbits i{animation-duration:48s}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-delay:0ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:0ms!important;scroll-behavior:auto!important}[data-reveal],[data-reveal][data-revealed=true]{animation:none!important;opacity:1;translate:none}.hero-brand__glyph,.hero-copy>*,.signal-card,.signal-card strong,.line-field,.line-field__float{animation:none!important;opacity:1;translate:none}.line-field__stroke{animation:none!important;opacity:1;stroke-dashoffset:0;transform:none}.line-field__stroke--calibration{opacity:.42}.hero-target,.hero-visual:after,.line-field:after,.signal-ripple,.custom-cursor{display:none}.hero-orbits i,.line-field:before{animation:none!important}}
