.mono-portfolio-wrapper{background:#111;min-height:100vh;position:relative}.mono-portfolio{--bg:#111;--bg-surface:#ffffff08;--bg-surface-open:#ffffff0d;--bg-hover:#ffffff0f;--text:#e8e8ec;--text-soft:#c8c8cf;--text-muted:#8a8a94;--border:#ffffff1a;--accent:#60a5fa;--accent-hover:#93c5fd;--accent-soft:#60a5fa26;--selection-bg:#5499f36e;--selection-fg:#fff;max-width:1600px;color:var(--text);background:var(--bg);border:1px solid var(--border);z-index:2;transform-origin:top;min-height:100vh;margin:0 auto;padding:3rem 2.5rem;font-family:CommitMono,monospace;line-height:1.6;position:relative}@media (max-width:1200px){.mono-portfolio{padding:2.5rem 2rem}}@media (max-width:900px){.mono-portfolio{padding:2rem 1.5rem}}@media (max-width:480px){.mono-portfolio{padding:1.5rem 1rem}}.mono-portfolio ::selection{background-color:var(--selection-bg);color:var(--selection-fg)}.mono-portfolio h1{letter-spacing:-.02em;margin:0 0 .25rem;font-size:2rem;font-weight:600;line-height:1.25}.mono-portfolio h2{text-transform:uppercase;letter-spacing:.08em;margin:0 0 .5rem;font-size:1.15rem;font-weight:600;line-height:1.3}.mono-portfolio h3{margin:0;font-size:1rem;font-weight:400;line-height:1.3}.mono-portfolio p,.mono-portfolio li{letter-spacing:-.02em;color:var(--text-soft);margin:0 0 1rem;font-size:.9375rem;line-height:1.8}.mono-portfolio hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.mono-portfolio .portfolio-grid{grid-template-columns:minmax(280px,2fr) minmax(0,3fr);align-items:start;gap:8rem;display:grid}@media (max-width:1200px){.mono-portfolio .portfolio-grid{gap:4rem}}.mono-portfolio .portfolio-grid__left{grid-template-rows:1fr;grid-template-columns:1fr;height:calc(100vh - 6rem);display:grid;position:sticky;top:3rem}.mono-portfolio .portfolio-grid__left>:first-child{z-index:0;grid-area:1/1}.mono-portfolio .portfolio-grid__left>.intro-terminal{z-index:1;grid-area:1/1;align-self:start;margin:1.25rem}.mono-portfolio .portfolio-grid__right{flex-direction:column;gap:4rem;min-width:0;display:flex}@media (max-width:900px){.mono-portfolio .portfolio-grid{grid-template-columns:1fr;gap:2rem}.mono-portfolio .portfolio-grid__left{height:auto;position:static}}.mono-portfolio .skip-link{background:var(--accent);color:#fff;z-index:100;padding:.5rem 1rem;font-size:.8125rem;text-decoration:none;position:absolute;top:0;left:-9999px}.mono-portfolio .skip-link:focus{left:0}.mono-portfolio .guide-trigger{cursor:pointer;z-index:50;background:#ffffff08;border:1px solid #ffffff1a;border-radius:2px;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;transition:border-color .15s,background-color .15s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.mono-portfolio .guide-trigger kbd{color:#8a8a94;font-family:CommitMono,monospace;font-size:.875rem;transition:color .15s}.mono-portfolio .guide-trigger:hover,.mono-portfolio .guide-trigger:focus{background:#ffffff0f;border-color:#60a5fa;outline:none}.mono-portfolio .guide-trigger:hover kbd,.mono-portfolio .guide-trigger:focus kbd{color:#e8e8ec}.mono-portfolio .guide-trigger:focus-visible{outline-offset:2px;outline:2px solid #60a5fa}@media (max-width:768px){.mono-portfolio .guide-trigger{width:2.25rem;height:2.25rem;bottom:1rem;right:1rem}}.mono-portfolio .intro-terminal{border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);background:#050506e6;font-family:CommitMono,monospace}.mono-portfolio .intro-terminal__titlebar{border-bottom:1px solid var(--border);background:#ffffff08;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.mono-portfolio .intro-terminal__dots{gap:.375rem;display:flex}.mono-portfolio .intro-terminal__dot{border-radius:50%;width:.5rem;height:.5rem}.mono-portfolio .intro-terminal__dot--red{background:#ff5f57}.mono-portfolio .intro-terminal__dot--yellow{background:#febc2e}.mono-portfolio .intro-terminal__dot--green{background:#28c840}.mono-portfolio .intro-terminal__title{color:var(--text-muted);letter-spacing:.02em;font-size:.75rem}.mono-portfolio .intro-terminal .intro{padding:1rem 1.25rem}.mono-portfolio .intro{margin-bottom:0}.mono-portfolio .intro__header{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.mono-portfolio .intro__avatar{background:var(--bg);width:3.5rem;height:3.5rem;color:var(--text);letter-spacing:.02em;border:1px solid #0000;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;padding:.25rem;font-size:1.125rem;font-weight:600;display:flex}.mono-portfolio .intro__title-group{flex-direction:column;display:flex}.mono-portfolio .intro__title-group h1,.mono-portfolio .intro__title-group .intro__subtitle{margin:0}.mono-portfolio .intro__subtitle{color:var(--text-muted);font-size:.875rem;font-weight:400}.mono-portfolio .intro__about{letter-spacing:-.02em;margin:0 0 1rem;font-size:.9375rem;line-height:1.7}.mono-portfolio .intro__about--secondary{color:var(--text-muted)}.mono-portfolio .intro__links{flex-wrap:wrap;gap:1rem;margin-top:1.25rem;display:flex}.mono-portfolio .bracket-link{color:var(--accent);cursor:pointer;font-size:.875rem;text-decoration:none;transition:color .15s}.mono-portfolio .bracket-link:before{content:"[";color:var(--text-muted)}.mono-portfolio .bracket-link:after{content:"]";color:var(--text-muted)}.mono-portfolio .bracket-link:hover,.mono-portfolio .bracket-link:focus{color:var(--accent-hover);outline:none;text-decoration:none}.mono-portfolio .bracket-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono-portfolio .section-heading{margin-bottom:1rem}.mono-portfolio .section-intro{max-width:42rem;color:var(--text-muted);margin:0}.mono-portfolio .section-list{margin:0;padding:0;list-style:none}.mono-portfolio .section-list__year{color:var(--text-muted);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;font-size:.8125rem}.mono-portfolio .section-list__item{border-top:1px solid var(--border);transition:background-color .15s;position:relative}.mono-portfolio .section-list__item[data-open]{background-color:#ffffff05}.mono-portfolio .section-list__item[data-open] .section-list__marker{opacity:1;color:var(--accent)}.mono-portfolio .section-list__item:last-child{border-bottom:1px solid var(--border)}.mono-portfolio .section-list__trigger{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;align-items:flex-start;padding:.9rem 0 .9rem 1.5rem;font-family:inherit;display:flex;position:relative}.mono-portfolio .section-list__trigger:focus{outline:none}.mono-portfolio .section-list__trigger:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.mono-portfolio .section-list__trigger:focus .section-list__marker,.mono-portfolio .section-list__trigger:focus-visible .section-list__marker{opacity:1;color:var(--accent)}.mono-portfolio .section-list__marker{color:var(--text);opacity:0;pointer-events:none;font-size:.875rem;transition:opacity .15s;position:absolute;top:1rem;left:.25rem}.mono-portfolio .section-list__header{flex-direction:column;gap:.45rem;min-width:0;display:flex}.mono-portfolio .section-list__meta{flex-wrap:wrap;align-items:baseline;gap:.75rem;display:flex}.mono-portfolio .section-list__title{color:var(--text);font-size:1rem;font-weight:500}.mono-portfolio .section-list__summary{color:var(--text-muted);max-width:44rem;margin:0;font-size:.875rem;line-height:1.7}.mono-portfolio .section-list__date{color:var(--text-muted);white-space:nowrap;letter-spacing:.02em;min-width:5.5rem;font-size:.8125rem}.mono-portfolio .section-list__role{font-size:.9375rem}.mono-portfolio .section-list__company-link{color:var(--text);cursor:pointer;text-decoration:none;transition:color .15s}.mono-portfolio .section-list__company-link:hover{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.mono-portfolio .section-list__company-link:focus{color:var(--accent);outline:none}.mono-portfolio .section-list__company-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono-portfolio .detail-panel{opacity:0;padding-left:1.5rem;transition:opacity .12s ease-out;display:none}.mono-portfolio .detail-panel[data-open]{opacity:1;display:block}.mono-portfolio .detail-panel[hidden]{display:none!important}.mono-portfolio .detail-panel__content{background:#ffffff04;border-radius:0;gap:1rem;margin-left:0;padding:.95rem .95rem 1rem;display:grid}.mono-portfolio .detail-panel__group{gap:.6rem;display:grid}.mono-portfolio .detail-panel__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.75rem}.mono-portfolio .detail-panel__badge-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.mono-portfolio .detail-panel__badge-item{margin:0}.mono-portfolio .detail-panel__badge{color:var(--text-soft);cursor:default;background:#ffffff05;border:1px solid #ffffff24;align-items:center;padding:.28rem .55rem;font-size:.75rem;line-height:1.4;display:inline-flex}.mono-portfolio .detail-panel__links{flex-wrap:wrap;gap:.75rem;display:flex}.mono-portfolio .ascii-footer{text-align:center;margin-top:0;padding-top:0;overflow-x:clip}.mono-portfolio .ascii-footer__art{white-space:pre;color:var(--text);margin-bottom:1rem;font-size:.8125rem;line-height:1.4}@media (max-width:600px){.mono-portfolio .ascii-footer__art{font-size:.5rem;line-height:1.2}}@media (prefers-reduced-motion:reduce){.mono-portfolio .detail-panel,.mono-portfolio .guide-trigger,.mono-portfolio .bracket-link,.mono-portfolio .section-list__item,.mono-portfolio .section-list__marker,.mono-portfolio .guide-trigger kbd{transition:none}}.case-study-page{--cs-bg:#0d0d0f;--cs-text:#d4d4d8;--cs-text-secondary:#a1a1aa;--cs-text-muted:#71717a;--cs-heading:#fafafa;--cs-border:#ffffff0f;--cs-link:#60a5fa;--cs-link-hover:#93c5fd;--cs-tag-bg:#ffffff0a;--cs-tag-border:#ffffff14;--cs-tag-text:#a1a1aa;background:var(--cs-bg);min-height:100vh;color:var(--cs-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:clamp(2rem,6vw,4.5rem) clamp(1.25rem,4vw,2.5rem);font-family:CommitMono,monospace}.case-study-shell{width:min(100%,54rem);margin:0 auto}.case-study-shell--index,.case-study-shell--article{gap:2.5rem;display:grid}.case-study-backlink{color:var(--cs-text-muted);font-size:.8125rem;text-decoration:none;transition:color .15s;display:inline-block}.case-study-backlink:hover,.case-study-backlink:focus{color:var(--cs-text);outline:none}.case-study-backlink:focus-visible{outline:2px solid var(--cs-link);outline-offset:4px}.case-study-breadcrumb{color:var(--cs-text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.case-study-breadcrumb__link{color:var(--cs-text-secondary);text-decoration:none;transition:color .15s}.case-study-breadcrumb__link:hover,.case-study-breadcrumb__link:focus{color:var(--cs-text);outline:none}.case-study-breadcrumb__link:focus-visible{outline:2px solid var(--cs-link);outline-offset:4px}.case-studies-hero{gap:.875rem;display:grid}.case-studies-title{letter-spacing:-.03em;color:var(--cs-heading);margin:0;font-size:clamp(2rem,5vw,2.75rem);font-weight:700;line-height:1.15}.case-studies-intro{max-width:38rem;color:var(--cs-text-secondary);margin:0;font-size:.9375rem;line-height:1.7}.case-studies-list{gap:1.5rem;display:grid}.case-study-card{background:var(--cs-tag-bg);border:1px solid var(--cs-border);border-radius:8px;flex-direction:column;padding:1.5rem;transition:border-color .15s,background-color .15s;display:flex;position:relative;overflow:hidden}.case-study-card:hover,.case-study-card:focus-within{background:#ffffff0f;border-color:#ffffff26}.case-study-card__link{color:inherit;text-decoration:none;transition:color .15s}.case-study-card__link:before{content:"";position:absolute;inset:0}.case-study-card__content{gap:.5rem;display:grid}.case-study-card__title{color:var(--cs-heading);margin:0;font-size:1.125rem;font-weight:700;line-height:1.35}.case-study-card__link:hover,.case-study-card__link:focus{outline:none}.case-study-card__link:focus-visible{outline:2px solid var(--cs-link);outline-offset:2px}.case-study-card__summary{color:var(--cs-text-secondary);margin:0;font-size:.875rem;line-height:1.65}.case-study-card__meta{color:var(--cs-text-muted);margin:.125rem 0 0;font-size:.75rem}.case-study-header{gap:1.5rem;display:grid}.case-study-header__meta{gap:1rem;display:grid}.case-study-header__title{letter-spacing:-.02em;color:var(--cs-heading);margin:0;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:500;line-height:1.2}.case-study-header__summary{color:var(--cs-text-secondary);margin:0;font-size:1.0625rem;line-height:1.6}.case-study-header__details{color:var(--cs-text-muted);margin:0;font-size:.8125rem;line-height:1.5}.case-study-header__image-wrapper{aspect-ratio:16/9;border:1px solid var(--cs-border);background:#000;border-radius:8px;width:100%;margin-bottom:2rem;position:relative;overflow:hidden}.case-study-header__image{-o-object-fit:cover;object-fit:cover}.case-study-stack{flex-wrap:wrap;gap:.375rem;margin:.25rem 0 0;padding:0;list-style:none;display:flex}.case-study-stack__item{color:var(--cs-tag-text);background:var(--cs-tag-bg);border:1px solid var(--cs-tag-border);border-radius:3px;margin:0;padding:.25rem .625rem;font-size:.75rem;line-height:1.4}.case-study-content{gap:2.5rem;padding-top:1rem;display:grid}.case-study-section h2{color:var(--cs-heading);margin:0 0 1.25rem;font-size:1.125rem;font-weight:500;line-height:1.3}.case-study-section__body{gap:1.25rem;display:grid}.case-study-section p{color:var(--cs-text-secondary);margin:0;font-size:.9375rem;line-height:1.7}.case-study-links{flex-wrap:wrap;gap:1.25rem;display:flex}.case-study-ext-link{color:var(--cs-link);font-size:.9375rem;text-decoration:none;transition:color .15s}.case-study-ext-link:hover,.case-study-ext-link:focus{color:var(--cs-link-hover);outline:none;text-decoration:underline}.case-study-ext-link:focus-visible{outline:2px solid var(--cs-link);outline-offset:4px}@media (max-width:640px){.case-study-page{padding-inline:1rem}.case-studies-title,.case-study-header__title{font-size:clamp(1.75rem,8vw,2.25rem)}}.guide-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.guide-modal-overlay.guide-modal--v2{--guide-overlay-bg:#0d0d0fe6;--guide-modal-bg:#141418f2;--guide-modal-border:#ffffff1a;--guide-modal-shadow:0 8px 32px #00000080;--guide-text:#e8e8ec;--guide-text-muted:#8a8a94;--guide-border:#ffffff1a;--guide-surface:#ffffff08;--guide-accent:#60a5fa;--guide-accent-soft:#60a5fa26;--guide-kbd-bg:#ffffff0d;--guide-kbd-border:#ffffff1a;--guide-font:"CommitMono",monospace;background:var(--guide-overlay-bg)}.guide-modal{width:100%;max-width:520px;max-height:90vh;overflow-y:auto}.guide-modal.guide-modal--v2{--guide-overlay-bg:#0d0d0fe6;--guide-modal-bg:#141418f2;--guide-modal-border:#ffffff1a;--guide-modal-shadow:0 8px 32px #00000080;--guide-text:#e8e8ec;--guide-text-muted:#8a8a94;--guide-border:#ffffff1a;--guide-surface:#ffffff08;--guide-accent:#60a5fa;--guide-accent-soft:#60a5fa26;--guide-kbd-bg:#ffffff0d;--guide-kbd-border:#ffffff1a;--guide-font:"CommitMono",monospace;background:var(--guide-modal-bg);border:1px solid var(--guide-modal-border);box-shadow:var(--guide-modal-shadow);font-family:var(--guide-font);color:var(--guide-text);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:2px}.guide-modal:focus{outline:none}.guide-modal__header{border-bottom:1px solid var(--guide-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.guide-modal__header h2{text-transform:uppercase;letter-spacing:.05em;color:var(--guide-text);margin:0;font-size:1rem;font-weight:700}.guide-modal__close{cursor:pointer;color:var(--guide-text-muted);background:0 0;border:none;align-items:center;gap:.25rem;padding:.25rem .5rem;font-family:inherit;font-size:.75rem;transition:color .15s;display:flex}.guide-modal__close kbd{border:1px solid var(--guide-kbd-border);background:var(--guide-kbd-bg);color:var(--guide-text-muted);border-radius:2px;padding:.125rem .375rem;font-family:inherit;font-size:.6875rem}.guide-modal__close:hover{color:var(--guide-text)}.guide-modal__close:focus{color:var(--guide-text);outline:none}.guide-modal__close:focus-visible{outline:2px solid var(--guide-accent);outline-offset:2px}.guide-modal__content{padding:1.25rem}.guide-modal__section:not(:last-child){margin-bottom:1.5rem}.guide-modal__section h3{text-transform:uppercase;letter-spacing:.05em;color:var(--guide-text-muted);margin:0 0 .75rem;font-size:.8125rem;font-weight:700}.guide-modal__shortcuts{grid-template-columns:1fr 1fr;gap:.75rem 2rem;display:grid}@media (max-width:480px){.guide-modal__shortcuts{grid-template-columns:1fr}}.guide-modal__shortcut-group{flex-direction:column;gap:.375rem;display:flex}.guide-modal__shortcut{align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.guide-modal__keys{align-items:center;gap:.125rem;min-width:5.5rem;display:flex}.guide-modal__keys kbd{border:1px solid var(--guide-kbd-border);background:var(--guide-kbd-bg);color:var(--guide-text);border-radius:2px;padding:.125rem .375rem;font-family:inherit;font-size:.6875rem}.guide-modal__action{color:var(--guide-text-muted);font-size:.75rem}@media (prefers-reduced-motion:reduce){.guide-modal-overlay,.guide-modal{animation:none}.guide-modal__close{transition:none}}
