.site-header{border-bottom:1px solid var(--border);position:relative}.header-grid{gap:var(--space-2) var(--space-4);padding-block:var(--space-4) var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.nameplate{flex-direction:column;flex:8rem;min-width:0;text-decoration:none;display:inline-flex}.nameplate span{font-size:.9375rem;font-weight:700;line-height:1.4}.nameplate small{display:none}.site-nav{gap:0 var(--space-4);flex-wrap:wrap;flex-basis:100%;order:3;grid-area:2/1/auto/-1;display:flex}.site-nav-link{min-height:44px;color:var(--muted);align-items:center;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.site-nav-link:hover,.site-nav-link:focus-visible{color:var(--text);text-decoration:underline}.site-nav-link-active{color:var(--accent);text-decoration:underline;text-decoration-thickness:2px}.header-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.header-actions .ghost-button{padding-inline:var(--space-3);font-size:.8rem}.js-theme-toggle:disabled{visibility:hidden}.skip-link{left:var(--space-4);z-index:50;padding:var(--space-3) var(--space-4);background:var(--accent);color:var(--on-action);border-radius:0 0 8px 8px;position:absolute;top:0;transform:translateY(-150%)}.skip-link:focus{transform:none}.locale-dropdown{position:relative}.locale-dropdown summary,.projects-label-dropdown summary,.timeline-company-summary,.recommendation-summary{list-style:none}.locale-dropdown summary::-webkit-details-marker{display:none}.projects-label-dropdown summary::-webkit-details-marker{display:none}.timeline-company-summary::-webkit-details-marker{display:none}.recommendation-summary::-webkit-details-marker{display:none}.locale-dropdown:not([open]) .locale-dropdown-menu,.projects-label-dropdown:not([open]) .projects-label-dropdown-menu{display:none}.locale-dropdown-trigger{align-items:center;gap:var(--space-2);border:1px solid var(--control-border);min-height:44px;padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:8px;font-size:.8rem;font-weight:600;display:inline-flex}.locale-dropdown-current{align-items:center;gap:var(--space-2);display:inline-flex}.locale-caret,.projects-label-dropdown-caret{fill:none;stroke:currentColor;stroke-width:1.8px;width:.875rem;height:.875rem}.locale-dropdown-menu{z-index:30;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--control-border);background:var(--surface-strong);width:min(12rem,100vw - 2rem);box-shadow:var(--shadow);border-radius:8px;margin:0;list-style:none;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.locale-dropdown-option{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2);border-radius:4px;font-size:.875rem;text-decoration:none;display:flex}.locale-dropdown-option:hover,.locale-dropdown-option-active{background:var(--accent-soft)}.locale-dropdown-option-active{text-decoration:underline}.locale-flag{border-radius:2px;flex:none;width:1rem;height:.75rem}.site-footer{border-top:1px solid var(--border);padding-block:var(--space-8)}.footer-grid{gap:var(--space-4);color:var(--muted);font-size:.875rem;display:grid}.footer-links{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.footer-links a{align-items:center;min-height:32px;text-decoration:none;display:inline-flex}.footer-links a:hover,.footer-links a:focus-visible{color:var(--text);text-decoration:underline}.not-found{align-content:center;justify-items:start;gap:var(--space-6);min-height:60vh;max-width:var(--reading-width);display:grid}.not-found-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}@media (max-width:359px){.header-grid{gap:var(--space-2)}.header-actions{gap:var(--space-1)}.site-nav{gap:0 var(--space-3)}.locale-dropdown-trigger,.header-actions .ghost-button{padding-inline:var(--space-2)}}@media (min-width:1024px){.header-grid{gap:var(--space-6);padding-block:var(--space-4);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.site-nav{order:0;grid-area:auto}}
.grid{gap:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}.projects-grid{align-items:start}.card{gap:var(--space-4);min-width:0;padding:var(--space-6);border:1px solid var(--border);background:var(--surface);border-radius:12px;display:grid}.card h2,.card h3{font-size:1.3rem;line-height:1.25}.card h2 a,.card h3 a{text-decoration:none}.card h2 a:hover,.card h3 a:hover{color:var(--accent);text-decoration:underline}.card-banner-shell{aspect-ratio:16/9;border:1px solid var(--border);background:var(--surface-strong);border-radius:8px;margin:0;position:relative;overflow:hidden}.card-banner-image{object-fit:cover;width:100%;height:100%;display:block}.card-banner-image-contain{object-fit:contain}.chip-row{align-self:start;gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--border);padding:var(--space-1) var(--space-2);color:var(--muted);border-radius:4px;font-size:.8125rem;line-height:1.5}.project-card-meta-row{gap:var(--space-2) var(--space-4);color:var(--muted);flex-wrap:wrap;font-size:.8125rem;display:flex}.project-card-meta-row span+span:before{content:"·";margin-right:var(--space-4)}.project-card-detail-status{color:var(--muted);font-size:.875rem;font-weight:600}.project-card-in-progress{background:0 0;border-style:dashed}.project-card-preview-heading{gap:var(--space-2);display:grid}.project-card-stage-in-progress{font-weight:600}.post-card{background:0 0}.projects-filter{gap:var(--space-3);max-width:28rem;display:grid}.projects-filter-label,.projects-filter-status{color:var(--muted);font-size:.875rem}.projects-label-dropdown{min-width:0;position:relative}.projects-label-dropdown-trigger{align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--control-border);background:var(--surface);cursor:pointer;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;display:grid}.projects-label-dropdown-summary{font-weight:600}.projects-label-dropdown-count{min-width:1.5rem;padding-inline:var(--space-1);background:var(--accent-soft);text-align:center;border-radius:4px;font-size:.8125rem}.projects-label-dropdown-menu{z-index:15;gap:var(--space-2);width:100%;max-height:min(24rem,60vh);padding:var(--space-2);border:1px solid var(--control-border);background:var(--surface-strong);box-shadow:var(--shadow);border-radius:8px;display:grid;position:absolute;top:calc(100% + .5rem);left:0;overflow-y:auto}.projects-label-dropdown-actions{justify-content:space-between;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border);padding:0 var(--space-2) var(--space-2);flex-wrap:wrap;font-size:.875rem;display:flex}.projects-label-clear{min-height:44px;padding:var(--space-2);color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:4px;text-decoration:underline}.projects-label-clear[aria-disabled=true]{color:var(--muted);cursor:default;text-decoration:none}.projects-label-options{gap:var(--space-1);display:grid}.projects-label-option{align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2);cursor:pointer;border-radius:4px;grid-template-columns:auto minmax(0,1fr);display:grid}.projects-label-option:hover,.projects-label-option-active{background:var(--accent-soft)}.projects-label-option:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.projects-label-checkbox{width:1.125rem;height:1.125rem;accent-color:var(--accent);margin:0}.projects-label-checkmark{display:none}.chip-button{cursor:pointer;min-height:44px;font:inherit;background:var(--surface);border-color:var(--control-border)}.chip-button-active{background:var(--accent-soft);border-color:var(--accent)}@media (min-width:700px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:359px){.card{padding:var(--space-4)}}.writing-grid{grid-template-columns:minmax(0,1fr)}@media (min-width:768px){.writing-grid .post-card{grid-template-columns:minmax(0,240px) minmax(0,1fr);align-items:start}.writing-grid .post-card>.card-banner-shell{grid-area:1/1/6}.writing-grid .post-card>:not(.card-banner-shell){grid-column:2}}
.hero{margin-bottom:var(--space-12)}.hero-layout{gap:var(--space-8);align-items:center;display:grid}.hero-copy{gap:var(--space-6);display:grid}.hero-copy h1{max-width:18ch}.hero-copy .lead{max-width:52ch}.hero-actions,.detail-actions,.experience-actions,.article-actions{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.hero-portrait{background:var(--surface);border-radius:50%;width:144px;margin:0;overflow:hidden}.hero-portrait img{aspect-ratio:1;object-fit:cover;width:100%;height:auto;display:block}.home-snapshot{border-top:1px solid var(--border);padding-top:var(--space-8)}.snapshot-copy{gap:var(--space-4);max-width:var(--reading-width);display:grid}.home-focus h2{margin-bottom:var(--space-4)}.home-evidence{gap:var(--space-12);display:grid}.preview-section{min-width:0}.page-overview,.detail-hero,.article-hero,.resume-hub{gap:var(--space-6);display:grid}.detail-hero-grid{align-items:start;gap:var(--space-8);display:grid}.detail-facts{gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--border);margin:0;display:grid}.detail-facts div{min-width:0}.detail-facts dt{color:var(--muted);font-size:.875rem}.detail-facts dd{margin:var(--space-1) 0 0;font-weight:600}.article-hero{max-width:880px}.article-hero h1{max-width:26ch}.article-hero-aside{gap:var(--space-4);display:grid}.article-meta-row{gap:var(--space-2) var(--space-6);flex-wrap:wrap;font-size:.875rem;display:flex}.project-banner{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:0;overflow:hidden}.project-banner img{width:100%;height:auto;display:block}.project-highlights{width:min(100%, var(--reading-width));margin-inline:auto}.outcome-list{gap:var(--space-3);margin:var(--space-6) 0 0;padding-left:var(--space-6);display:grid}.outcome-list li::marker{color:var(--accent)}.detail-footer-nav{display:flex}.resume-contact-panel{gap:var(--space-3);max-width:var(--reading-width);padding-top:var(--space-6);border-top:1px solid var(--border);display:grid}.resume-links{gap:var(--space-3);display:grid}.contact-address{color:var(--muted);flex-basis:100%}@media (min-width:768px){.hero{margin-block:var(--space-4) var(--space-16)}.hero-layout{gap:var(--space-8);grid-template-columns:minmax(0,1fr) 280px}.hero-portrait{width:208px}.hero-copy{gap:var(--space-6)}.home-evidence{gap:var(--space-16)}.detail-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,.55fr)}.detail-facts{padding:0 0 0 var(--space-8);border-top:0;border-left:1px solid var(--border)}}@media (min-width:1024px){.hero-layout{gap:var(--space-12);grid-template-columns:minmax(0,1fr) 336px}}.preview-section.section-stack{gap:var(--space-6)}.preview-section.section-stack>.section-heading-row{margin-bottom:0}
.experience-hero{gap:var(--space-6);display:grid}.experience-hero-grid{gap:var(--space-8);display:grid}.experience-current{gap:var(--space-2);border-left:2px solid var(--accent);padding-left:var(--space-4);display:grid}.experience-current-role{font-weight:600}.experience-overview{align-items:start;gap:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.experience-focus{gap:var(--space-3);flex:20rem;display:grid}.experience-stats{gap:var(--space-4);color:var(--muted);flex-wrap:wrap;margin:0;font-size:.875rem;display:flex}.experience-stats dt{color:var(--text);font-weight:700}.experience-stats dd{margin:0}.experience-section-header{gap:var(--space-3);margin-bottom:var(--space-6);display:grid}.recommendations-lead{max-width:var(--reading-width);color:var(--muted)}.timeline,.recommendations{gap:var(--space-6);margin:0;padding:0;list-style:none;display:grid}.timeline-company{gap:var(--space-6);border-top:1px solid var(--border);padding-top:var(--space-6);display:grid}.timeline-company:first-child{border-top:0;padding-top:0}.timeline-company-header,.timeline-company-summary-main{align-items:center;gap:var(--space-4);min-width:0;display:flex}.timeline-company-header-text{min-width:0}.timeline-company-header p,.timeline-company-meta{margin-top:var(--space-1);color:var(--muted);font-size:.875rem;display:block}.timeline-company-logo{object-fit:contain;border:1px solid var(--border);width:44px;height:44px;padding:var(--space-1);background:#fff;border-radius:8px;flex:none}.timeline-company-name{font-size:1.25rem;font-weight:700;line-height:1.25;display:block}.timeline-role{gap:var(--space-2);border-left:1px solid var(--border);padding-left:var(--space-4);display:grid}.timeline-period{color:var(--muted);font-size:.875rem}.timeline-role ul{gap:var(--space-2);max-width:var(--reading-width);margin:var(--space-2) 0 0;padding-left:var(--space-4);display:grid}.timeline-role li::marker{color:var(--accent)}.timeline-company-collapsible{border-top:0;padding-top:0}.timeline-company-details,.recommendation-item details{border-block:1px solid var(--border)}.timeline-company-summary{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-2);cursor:pointer;grid-template-columns:minmax(0,1fr) auto;display:grid}.timeline-company-summary-details{color:var(--muted);grid-column:1;font-size:.875rem}.timeline-company-latest{gap:var(--space-2);color:var(--muted);flex-wrap:wrap;grid-column:1;font-size:.875rem;display:flex}.timeline-company-latest-label{font-weight:600}.timeline-company-chevron,.recommendation-chevron{width:.625rem;height:.625rem;color:var(--muted);border-bottom:2px solid;border-right:2px solid;flex:none;display:block;transform:rotate(45deg)}.timeline-company-chevron{grid-area:1/2}.timeline-company-details[open]>.timeline-company-summary .timeline-company-chevron,.recommendation-item details[open]>.recommendation-summary .recommendation-chevron{color:var(--accent);transform:rotate(-45deg)}.timeline-company-summary:hover,.recommendation-summary:hover{background:var(--surface)}.timeline-company-content{gap:var(--space-6);padding:var(--space-6) var(--space-2);border-top:1px solid var(--border);display:grid}.recommendation-summary{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-2);cursor:pointer;display:flex}.recommendation-summary-text{gap:var(--space-2);min-width:0;display:grid}.recommendation-name{font-size:1.125rem;font-weight:600}.recommendation-context,.recommendation-headline{color:var(--muted);font-size:.875rem}.recommendation-content{gap:var(--space-4);max-width:var(--reading-width);padding:var(--space-6) var(--space-2);display:grid}@media (min-width:900px){.experience-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,.6fr)}.timeline-company-summary{gap:var(--space-3) var(--space-6);grid-template-columns:minmax(0,1fr) auto auto}.timeline-company-summary-details{grid-column:2}.timeline-company-chevron{grid-column:3}.timeline-company-latest{grid-column:1/3;padding-left:60px}}
.games-grid{align-items:start}.game-card{gap:var(--space-4)}.falling-blocks{gap:var(--space-6);align-items:start;display:grid}.falling-blocks-play{gap:var(--space-2);justify-self:center;width:100%;min-width:0;max-width:30rem;display:grid}.falling-blocks-toolbar{justify-content:flex-end;display:flex}.falling-blocks-toolbar button{min-height:44px}.falling-blocks-stage{align-items:start;gap:var(--space-2);grid-template-columns:minmax(0,1fr) 4.5rem;min-width:0;display:grid}.falling-blocks-board-wrap{border:2px solid var(--border);width:min(100%, calc((100svh - 350px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * var(--board-ratio)));background:#142522;border-radius:16px;justify-self:center;position:relative;overflow:hidden}.falling-blocks-board{width:100%;max-width:100%;height:auto;display:block}.falling-blocks-board:focus-visible{outline-offset:-5px;outline:3px solid #f4c680}.falling-blocks-overlay{place-content:center;justify-items:center;gap:var(--space-2);padding:var(--space-3);text-align:center;color:#f2f4ee;background:#142522f0;display:grid;position:absolute;inset:0}.falling-blocks-overlay-title{margin:0;font-size:clamp(1rem,4vw,1.6rem);font-weight:700}.falling-blocks-overlay-hint{color:#c5d4cb;max-width:30ch;margin:0;font-size:.8125rem}.falling-blocks-overlay button{min-height:44px}.falling-blocks button:disabled{opacity:.55;cursor:default}.falling-blocks-panels{gap:var(--space-6);justify-self:center;min-width:0;max-width:46rem;display:grid}.falling-blocks-hud{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.falling-blocks-hud div{padding:var(--space-1);border:1px solid var(--border);background:var(--surface);border-radius:12px}.falling-blocks-hud dt,.falling-blocks-slot figcaption{color:var(--muted);white-space:nowrap;font-size:.75rem;font-weight:600;line-height:1.3}.falling-blocks-hud dd{white-space:nowrap;font-variant-numeric:tabular-nums;margin:0;font-size:.875rem;font-weight:700;line-height:1.3}.falling-blocks-slots{gap:var(--space-2);display:grid}.falling-blocks-slot{padding:var(--space-1);justify-items:center;gap:var(--space-2);border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:0;display:grid}.falling-blocks-preview{background:#142522;border-radius:8px;width:4.5rem;max-width:100%;height:auto;display:block}.falling-blocks-actions{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.falling-blocks-actions button{min-height:44px;padding:var(--space-1);touch-action:manipulation;white-space:nowrap;font-size:.8125rem;line-height:1.3}.falling-blocks-input-hint{margin:0;font-size:.8125rem}.falling-blocks-notes{gap:var(--space-2);display:grid}.falling-blocks.is-fullscreen{z-index:100;width:100%;height:100dvh;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));background:var(--bg);grid-template-columns:1fr;align-content:center;position:fixed;inset:0;overflow:auto}.falling-blocks.is-fullscreen .falling-blocks-panels,.falling-blocks.is-fullscreen .falling-blocks-notes{display:none}.falling-blocks.is-fullscreen .falling-blocks-play{max-width:34rem}@media (min-width:540px) and (min-aspect-ratio:1){.falling-blocks-play{grid-template-columns:minmax(0,1fr) 18rem;grid-template-areas:"toolbar toolbar""stage hud""stage actions""notes notes";align-items:start;max-width:54rem}.falling-blocks-toolbar{grid-area:toolbar}.falling-blocks-hud{grid-area:hud;grid-template-columns:repeat(2,minmax(0,1fr))}.falling-blocks-hud dd{font-size:.875rem}.falling-blocks-stage{grid-area:stage;grid-template-columns:minmax(0,1fr) 4.5rem}.falling-blocks-board-wrap{width:min(100%, calc((100svh - 100px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * var(--board-ratio)), calc(40rem * var(--board-ratio)))}.falling-blocks-actions{grid-area:actions;align-self:end}.falling-blocks-notes{grid-area:notes}.falling-blocks.is-fullscreen .falling-blocks-play{max-width:54rem}}@media (max-height:600px){.falling-blocks-overlay{gap:var(--space-1);padding:var(--space-2)}.falling-blocks-overlay-title{font-size:1rem;line-height:1.2}.falling-blocks-overlay-hint{font-size:.75rem;line-height:1.35}}.falling-blocks-rules h2{margin-top:0;font-size:1.1rem}.falling-blocks-rules ol{margin-bottom:0;padding-left:1.25rem}.falling-blocks-rules li+li{margin-top:var(--space-3)}.falling-blocks-controls{padding:var(--space-4);border:1px solid var(--border);background:var(--surface);border-radius:12px}.falling-blocks-controls summary{cursor:pointer;font-weight:600}.falling-blocks-controls dl{gap:var(--space-3);margin-bottom:0;font-size:.875rem;display:grid}.falling-blocks-controls dl div{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.falling-blocks-controls kbd{font:inherit;font-size:.75rem}.falling-blocks-controls dd{color:var(--muted);margin:0}@media (min-width:768px){.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sudoku{gap:var(--space-6);display:grid}.sudoku-play{gap:var(--space-2);justify-self:center;width:100%;min-width:0;max-width:32rem;display:grid}.sudoku-toolbar{align-items:end;gap:var(--space-2);flex-wrap:wrap;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.sudoku-toolbar label{gap:var(--space-1);flex:1;font-size:.75rem;font-weight:600;display:grid}.sudoku-toolbar select,.sudoku button{min-width:44px;min-height:44px}.sudoku-toolbar select{width:100%;padding:var(--space-1);border:1px solid var(--control-border);background:var(--surface);color:var(--text);font:inherit;border-radius:8px;font-size:.875rem}.sudoku-toolbar button{padding:var(--space-1) var(--space-2);font-size:.75rem}.sudoku-hud{gap:var(--space-2);grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);margin:0;line-height:1.35;display:grid}.sudoku-hud div{padding:var(--space-2);border:1px solid var(--border);background:var(--surface);border-radius:8px}.sudoku-hud dt{color:var(--muted);font-size:.75rem}.sudoku-hud dd{font-variant-numeric:tabular-nums;margin:0;font-size:.875rem}.sudoku-board-wrap{border:2px solid var(--text);background:var(--surface);border-radius:4px;justify-self:center;width:min(100%,100svh - 350px);min-width:216px;position:relative;overflow:hidden}.sudoku-grid{aspect-ratio:1;grid-template-rows:repeat(9,minmax(0,1fr));display:grid}.sudoku-grid.is-covered{visibility:hidden}.sudoku-grid [role=row]{grid-template-columns:repeat(9,minmax(0,1fr));min-height:0;display:grid}.sudoku .sudoku-cell{border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);min-width:0;min-height:0;color:var(--accent);font:inherit;touch-action:manipulation;border-radius:0;padding:0;font-size:clamp(1rem,4vw,1.5rem);font-weight:500;line-height:1;position:relative}.sudoku-cell:nth-child(3n){border-right:2px solid var(--text)}.sudoku-grid [role=row]:nth-child(3n) .sudoku-cell{border-bottom:2px solid var(--text)}.sudoku-cell:nth-child(9){border-right:0}.sudoku-grid [role=row]:last-child .sudoku-cell{border-bottom:0}.sudoku-cell[data-given=true]{color:var(--text);background:var(--surface-strong);font-weight:700}.sudoku-cell[aria-selected=true]{background:var(--accent-soft)}.sudoku-cell:focus-visible{z-index:1;outline:3px solid var(--accent);outline-offset:-3px}.sudoku-cell.has-conflict{box-shadow:inset 0 -3px var(--accent)}.sudoku-conflict{font-size:.65rem;font-weight:800;position:absolute;top:1px;right:2px}.sudoku-notes{grid-template-columns:repeat(3,1fr);width:100%;height:100%;font-size:clamp(.5rem,1.2vw,.7rem);line-height:1;display:grid}.sudoku-notes span{place-items:center;display:grid}.sudoku-overlay{align-content:center;justify-items:center;gap:var(--space-2);padding:var(--space-3);text-align:center;background:var(--surface);display:grid;position:absolute;inset:0}.sudoku-overlay p{margin:0;font-size:.8125rem;line-height:1.4}.sudoku-overlay .sudoku-overlay-title{font-size:1.1rem;font-weight:700}.sudoku-input{gap:var(--space-2);grid-template-columns:minmax(0,1fr) 140px;display:grid}.sudoku-tools{gap:var(--space-1);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.sudoku-numberpad{gap:var(--space-1);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.sudoku-input button{padding:var(--space-1);touch-action:manipulation;font-size:1.2rem;line-height:1.2}.sudoku-tool-label{display:none}.sudoku button[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.sudoku button:disabled{opacity:.65}.sudoku-status{margin:0;font-size:.75rem;line-height:1.3}.sudoku-storage-warning,.sudoku-completion{margin:0;font-size:.8125rem}.sudoku-hint{border:1px solid var(--border);padding:var(--space-4);background:var(--surface);border-radius:12px}.sudoku-hint h3{margin-top:0;font-size:1rem}.sudoku-hint-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.sudoku-information{justify-self:center;width:100%;max-width:54rem}.sudoku-information h2{font-size:1.1rem}.sudoku-information p,.sudoku-information li,.sudoku-records{font-size:.875rem}.sudoku-records{gap:var(--space-2);display:grid}.sudoku-records dd{font-variant-numeric:tabular-nums;margin:0}.sudoku.is-fullscreen{z-index:100;height:100dvh;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));background:var(--bg);align-content:start;position:fixed;inset:0;overflow:auto}.sudoku.is-fullscreen .sudoku-information{display:none}@media (min-width:540px) and (min-aspect-ratio:1){.sudoku-play{grid-template-columns:minmax(0,1fr) 18rem;grid-template-areas:"toolbar toolbar""board hud""board input""status status""warning warning""completion completion""hint hint";align-items:start;max-width:54rem}.sudoku-toolbar{grid-area:toolbar;display:flex}.sudoku-toolbar label{max-width:12rem}.sudoku-hud{grid-area:hud}.sudoku-board-wrap{grid-area:board;width:min(100%,100svh - 120px,32rem);min-width:0}.sudoku-input{grid-area:input;align-self:end}.sudoku-status{grid-area:status}.sudoku-storage-warning{grid-area:warning}.sudoku-completion{grid-area:completion}.sudoku-hint{grid-area:hint}}@media (min-width:900px){.sudoku-play{grid-template-columns:minmax(0,1fr) 20rem}.sudoku-tool-label{font-size:.75rem;line-height:1.25;display:block}}
.merge4096{gap:var(--space-6);display:grid}.merge4096-play{gap:var(--space-2);justify-self:center;width:100%;min-width:0;max-width:30rem;display:grid}.merge4096-toolbar{justify-content:space-between;gap:var(--space-2);display:flex}.merge4096 button{min-width:44px;min-height:44px}.merge4096-toolbar button{padding:var(--space-1) var(--space-2);font-size:.8125rem}.merge4096-hud{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.merge4096-hud div{padding:var(--space-2);border:1px solid var(--border);background:var(--surface);border-radius:10px}.merge4096-hud dt{color:var(--muted);font-size:.75rem;line-height:1.3}.merge4096-hud dd{font-variant-numeric:tabular-nums;margin:0;font-size:.875rem;font-weight:700;line-height:1.3}.merge4096-number-part{white-space:nowrap;display:inline-block}.merge4096-board-wrap{width:min(100%, calc(100svh - 300px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));background:#18303d;border-radius:18px;justify-self:center;position:relative;overflow:hidden;container-type:inline-size}.merge4096-grid{gap:var(--space-2);padding:var(--space-2);aspect-ratio:1;touch-action:none;-webkit-user-select:none;user-select:none;grid-template-rows:repeat(4,minmax(0,1fr));display:grid}.merge4096-grid:focus-visible{outline-offset:-4px;outline:3px solid #f4c680}.merge4096-grid [role=row]{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));min-height:0;display:grid}.merge4096-cell{min-width:0;min-height:0;padding:var(--space-1);color:#fff;background:#152f3b;border-radius:10px;place-items:center;display:grid;box-shadow:inset 0 -3px #00000021;container-type:inline-size}.merge4096-cell span{font-size:clamp(.5rem, calc(100cqw / var(--tile-digits) * 1.3), 2.5rem);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.merge4096-cell[data-value="0"]{background:#294653;box-shadow:inset 0 1px 3px #0000001f}.merge4096-cell[data-value="2"]{color:#152f3b;background:#8ee3e7}.merge4096-cell[data-value="4"]{color:#152f3b;background:#ffb4c6}.merge4096-cell[data-value="8"]{color:#152f3b;background:#ffe19a}.merge4096-cell[data-value="16"]{color:#152f3b;background:#c2b5ff}.merge4096-cell[data-value="32"]{color:#152f3b;background:#bce991}.merge4096-cell[data-value="64"]{color:#152f3b;background:#ffbe8a}.merge4096-cell[data-value="128"]{color:#152f3b;background:#89cafa}.merge4096-cell[data-value="256"]{color:#152f3b;background:#ff9bb1}.merge4096-cell[data-value="512"]{color:#152f3b;background:#79dfc0}.merge4096-cell[data-value="1024"]{color:#152f3b;background:#b4a0f2}.merge4096-cell[data-value="2048"]{color:#152f3b;background:#ffb377}.merge4096-cell[data-value="4096"]{color:#152f3b;background:#fbd664;box-shadow:inset 0 0 0 3px #fff1b8}.merge4096-overlay{align-content:center;justify-items:center;gap:var(--space-2);padding:var(--space-3);color:#f2f4ee;text-align:center;background:#102631f5;display:grid;position:absolute;inset:0}.merge4096-overlay p{max-width:30ch;margin:0;font-size:.8125rem;line-height:1.4}.merge4096-overlay .merge4096-overlay-title{font-size:clamp(1rem,5cqi,1.5rem);font-weight:700}.merge4096-overlay.is-won .merge4096-overlay-title{color:#fbd664}.merge4096-overlay>p,.merge4096-overlay>button{z-index:1;position:relative}.merge4096-confetti{pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden;container-type:size}.merge4096-confetti span{top:-16px;left:calc(var(--piece) * 4.25%);background:#fbd664;width:8px;height:14px;position:absolute}.merge4096-confetti span:nth-child(2n){background:#8ee3e7}.merge4096-confetti span:nth-child(3n){background:#ffb4c6;border-radius:50%}.merge4096-confetti span:nth-child(4n){background:#c2b5ff}.merge4096-directions{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.merge4096-directions button{padding:var(--space-1) var(--space-2);touch-action:manipulation;font-size:.8125rem;line-height:1.3}.merge4096-status,.merge4096-storage-warning{margin:0;font-size:.75rem;line-height:1.4}.merge4096 button:disabled{opacity:.6}.merge4096-information{justify-self:center;width:100%;max-width:54rem}.merge4096-information h2{font-size:1.1rem}.merge4096-information p,.merge4096-information li{font-size:.875rem}.merge4096.is-fullscreen{z-index:100;height:100dvh;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));background:var(--bg);align-content:start;position:fixed;inset:0;overflow:auto}.merge4096.is-fullscreen .merge4096-information{display:none}@media (min-width:540px) and (min-aspect-ratio:1){.merge4096-play{grid-template-columns:minmax(0,1fr) 16rem;grid-template-areas:"toolbar toolbar""board hud""board directions""status status""warning warning";align-items:start;max-width:54rem}.merge4096-toolbar{grid-area:toolbar}.merge4096-hud{grid-area:hud}.merge4096-board-wrap{width:min(100%, calc(100svh - 112px - env(safe-area-inset-top) - env(safe-area-inset-bottom)), 32rem);grid-area:board}.merge4096-directions{grid-area:directions;align-self:end}.merge4096-status{grid-area:status}.merge4096-storage-warning{grid-area:warning}}@media (prefers-reduced-motion:no-preference){.merge4096-cell{transition:background-color .12s ease-out}.merge4096-confetti{display:block}.merge4096-confetti span{animation:merge4096-confetti var(--duration) cubic-bezier(.12, .65, .45, 1) both;animation-delay:var(--delay)}.merge4096-overlay.is-celebrating .merge4096-overlay-title{animation:.65s ease-out both merge4096-congratulations}}@keyframes merge4096-confetti{0%{opacity:0;transform:translate(0,0)rotate(0)}10%,70%{opacity:1}to{opacity:0;transform:translate3d(var(--drift), calc(100cqh + 32px), 0) rotate(720deg)}}@keyframes merge4096-congratulations{0%{transform:scale(.86)}60%{transform:scale(1.04)}to{transform:scale(1)}}
.reading-page{width:min(100%, var(--reading-width));margin-inline:auto}.markdown{gap:var(--space-6);display:grid}.content-prose{width:100%;min-width:0;max-width:var(--reading-width);margin-inline:auto;line-height:1.75}.content-prose h2,.content-prose h3{margin-top:var(--space-6)}.content-prose h2:first-child,.content-prose h3:first-child{margin-top:0}.content-prose a{color:var(--accent);font-weight:600;text-decoration:underline}code{border:1px solid var(--border);background:var(--surface);overflow-wrap:anywhere;border-radius:4px;padding:.1em .3em;font-size:.875em}pre{min-width:0;max-width:100%;padding:var(--space-4);border:1px solid var(--border);background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0;overflow-x:auto}pre code{white-space:inherit;background:0 0;border:0;padding:0}.markdown ul,.markdown ol{gap:var(--space-3);padding-left:var(--space-6);margin:0;display:grid}.content-prose dl,dl.content-prose{gap:var(--space-6);display:grid}.content-prose dd{margin:var(--space-2) 0 0}.markdown-image{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;height:auto;display:block}.content-prose blockquote{padding-left:var(--space-6);border-left:2px solid var(--accent);margin:0}.content-prose table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.content-prose td,.content-prose th{padding:var(--space-2);border:1px solid var(--border);text-align:start}.reading-page>.surface{gap:var(--space-6);display:grid}@media (min-width:768px){.content-prose,.reading-page{font-size:1.125rem}.article-prose{grid-template-columns:minmax(0,1fr) minmax(0,66ch) minmax(0,1fr);max-width:100%}.article-prose>*{grid-column:2;width:100%;margin-inline:0}.article-prose>p:has(.markdown-image){grid-column:1/-1;justify-self:center;width:100%;max-width:960px}}
.astronomy-portrait{aspect-ratio:1;isolation:isolate;place-items:center;width:min(232px,100%);display:grid;position:relative}.astronomy-portrait>svg{width:100%;height:100%;color:var(--muted);pointer-events:none;z-index:-1;position:absolute;inset:0}.orbital-paths{fill:none;stroke:currentColor;stroke-width:1px;opacity:.5}.orbital-stars{fill:currentColor;stroke:currentColor;stroke-width:1px}.orbital-satellite{fill:var(--accent);transform-box:view-box;transform-origin:200px 200px}.orbital-halo{fill:none;stroke:var(--accent);opacity:.4}.orbital-satellite-near{animation:3.2s cubic-bezier(.2,.6,.3,1) both orbit-near;transform:rotate(35deg)}.orbital-satellite-far{animation:4.2s cubic-bezier(.2,.6,.3,1) .15s both orbit-far;transform:rotate(-35deg)}@keyframes orbit-near{0%{transform:rotate(-220deg)}to{transform:rotate(35deg)}}@keyframes orbit-far{0%{transform:rotate(160deg)}to{transform:rotate(-35deg)}}.celestial-divider{width:200px;height:24px;color:var(--muted);display:block}.celestial-divider path{fill:none;stroke:currentColor;opacity:.5}.celestial-divider circle{fill:var(--accent)}.card-banner-image{transition:transform .24s ease-out}.card:not(.project-card-in-progress):focus-within .card-banner-image{transform:scale(1.025)}@media (hover:hover){.card:not(.project-card-in-progress):hover .card-banner-image{transform:scale(1.025)}}.primary-button:active,.secondary-button:active,.ghost-button:active{transform:scale(.98)}.locale-caret,.projects-label-dropdown-caret,.timeline-company-chevron,.recommendation-chevron{transition:transform .18s ease-out}.locale-dropdown[open] .locale-caret,.projects-label-dropdown[open] .projects-label-dropdown-caret{transform:rotate(180deg)}.site-nav-link{position:relative}.site-nav-link:after{content:"";inset-inline:0;transform-origin:0;background:currentColor;height:2px;transition:transform .18s ease-out;position:absolute;bottom:7px;transform:scaleX(0)}.site-nav-link-active,.site-nav-link:hover,.site-nav-link:focus-visible{text-decoration:none}.site-nav-link-active:after,.site-nav-link:hover:after,.site-nav-link:focus-visible:after{transform:scaleX(1)}@media (min-width:768px){.astronomy-portrait{width:280px}}@media (min-width:1024px){.astronomy-portrait{width:336px}}@media (prefers-reduced-motion:reduce){.card:not(.project-card-in-progress):focus-within .card-banner-image,.card:not(.project-card-in-progress):hover .card-banner-image,.primary-button:active,.secondary-button:active,.ghost-button:active{transform:none}}@media (forced-colors:active){.orbital-satellite,.celestial-divider circle{fill:canvastext}.orbital-halo{stroke:canvastext}.site-nav-link:after{background:linktext}}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f2ee;--surface:#fff;--surface-strong:#fff;--text:#111;--muted:#525252;--border:#cecbc1;--control-border:#77756e;--accent:#b11e2f;--accent-soft:#f6d9de;--on-action:#fff;--action-hover:#941928;--shadow:0 4px 16px #1111111f;--font-body:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--reading-width:66ch;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1011;--surface:#171a1e;--surface-strong:#1f2328;--text:#f3f4f4;--muted:#b4bac2;--border:#31363d;--control-border:#858c96;--accent:#ff495c;--accent-soft:#3c2027;--on-action:#111;--action-hover:#ff6979;--shadow:0 4px 16px #00000040}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}html{background:var(--bg)}body{min-height:100dvh;color:var(--text);background:var(--bg);font-family:var(--font-body);overflow-wrap:anywhere;line-height:1.65}a{color:inherit;text-underline-offset:.2em}button,input,summary{font:inherit}button,summary{touch-action:manipulation}img,svg{max-width:100%}h1,h2,h3,h4{text-wrap:balance;margin:0;font-weight:700;line-height:1.15}h1{letter-spacing:-.035em;font-size:clamp(2rem,4vw,3.5rem)}h2{letter-spacing:-.025em;font-size:clamp(1.6rem,2.5vw,2rem)}h3{font-size:1.25rem}h4{font-size:1.1rem}p{margin:0}dd{margin-inline-start:0}.container{width:min(1120px,100% - 2rem);margin-inline:auto}.site-main{padding-block:var(--space-12) var(--space-16)}.surface{min-width:0}.section-stack{gap:var(--space-12);min-width:0;display:grid}.page-header{gap:var(--space-4);display:grid}.section-heading-row{justify-content:space-between;align-items:baseline;gap:var(--space-3) var(--space-6);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.section-heading-row p{margin-top:var(--space-2)}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:600}.lead{max-width:60ch;color:var(--muted);font-size:1.0625rem}.muted,.card-meta{color:var(--muted)}.card-meta{font-size:.875rem}.primary-button,.secondary-button,.ghost-button{border:1px solid var(--control-border);max-width:100%;min-height:44px;padding:var(--space-2) var(--space-4);color:var(--text);font:inherit;text-align:center;cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;font-weight:600;line-height:1.4;text-decoration:none;transition:color .14s ease-out,background-color .14s ease-out,border-color .14s ease-out,transform .16s ease-out;display:inline-flex}.primary-button{background:var(--accent);border-color:var(--accent);color:var(--on-action)}.primary-button:hover{background:var(--action-hover);border-color:var(--action-hover)}.secondary-button:hover,.ghost-button:hover{background:var(--surface-strong);border-color:var(--text)}.inline-link{color:var(--accent);font-weight:600;text-decoration:underline}.inline-link:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}#main-content:focus{outline:none}#main-content:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (min-width:768px){.container{width:min(1120px,100% - 4rem)}.site-main{padding-top:var(--space-16)}.section-stack{gap:var(--space-16)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (forced-colors:active){a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:highlight}.primary-button,.secondary-button,.ghost-button{border-color:buttontext}}
