.window{background:var(--ink);border:var(--border-width) solid var(--ink);box-shadow:var(--shadow-card);font-family:var(--font-mono)}.window--fill{flex-direction:column;display:flex}.window--fill .window__body{flex:auto}.window__titlebar{background:var(--navy);color:var(--surface);align-items:center;gap:10px;padding:8px 8px 8px 14px;display:flex}.window__titlebar--closable{min-height:var(--touch-target-size);padding-right:calc((var(--touch-target-size) - 22px) / 2)}.window__title{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.06em;min-width:0;margin:0;font-size:13px;font-weight:700;overflow:hidden}.window__controls{gap:4px;margin-left:auto;display:flex}.window__control{box-sizing:border-box;border:1.5px solid var(--surface);width:22px;height:18px;color:var(--surface);font:inherit;background:0 0;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:relative}.window__control--close{background:var(--danger)}.window__control--interactive{cursor:pointer}.window__control--interactive:focus-visible{outline:var(--focus-ring-width) solid var(--surface);outline-offset:2px}.window__control--interactive{--hit-extra-block:calc(18px - var(--touch-target-size));--hit-extra-inline:calc(22px - var(--touch-target-size))}.window__control--interactive:after{content:"";inset-block:calc(var(--hit-extra-block) / 2 - 1.5px);inset-inline:calc(var(--hit-extra-inline) / 2 - 1.5px);position:absolute}.window__path{background:var(--surface-alt);border-bottom:var(--border-width) solid var(--ink);padding:8px 10px}.window__path-text{background:var(--surface);border:1.5px solid var(--ink);white-space:nowrap;text-overflow:ellipsis;padding:5px 10px;font-size:12px;display:block;overflow:hidden}.window__path-root{color:var(--steel);font-weight:700}.window__path-file{color:var(--navy);font-weight:700}.window__body{background:var(--surface)}.dialog{--dialog-max-height:75vh;z-index:var(--z-dialog);background:var(--backdrop);flex-direction:column;justify-content:flex-end;animation:.2s ease-out dialog-fade;display:flex;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){.dialog{transition:none;animation:none}}@supports (height:1dvh){.dialog{--dialog-max-height:75dvh}}@media (width>=60rem){.dialog{--dialog-max-height:70vh}@supports (height:1dvh){.dialog{--dialog-max-height:70dvh}}.dialog{justify-content:center;align-items:center;padding:24px}}.dialog__panel{--shadow-card:0 -6px 0 var(--ink);width:100%;max-height:var(--dialog-max-height);animation:.2s ease-out dialog-rise}.dialog__panel:focus{outline:none}@media (prefers-reduced-motion:reduce){.dialog__panel{transition:none;animation:none}}@media (width>=60rem){.dialog__panel{--shadow-card:10px 10px 0 var(--ink);max-width:680px}}.dialog__content{max-height:calc(var(--dialog-max-height) - var(--touch-target-size) - calc(var(--border-width) * 2));--dialog-content-padding-top:20px;--dialog-content-padding-inline:16px;padding:var(--dialog-content-padding-top) var(--dialog-content-padding-inline) 28px;overscroll-behavior:contain;overflow-y:auto}@media (width>=60rem){.dialog__content{--dialog-content-padding-top:28px;--dialog-content-padding-inline:32px;padding-bottom:32px}}@keyframes dialog-fade{0%{opacity:0}to{opacity:1}}@keyframes dialog-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.section-heading{flex-direction:column;gap:10px;max-width:720px;display:flex}.section-heading__command{font-family:var(--font-mono);color:var(--steel);font-size:15px;font-weight:700}.section-heading__prompt{color:var(--ink)}.section-heading__title{letter-spacing:-.03em;margin:0;font-size:clamp(40px,4.4vw,64px);font-weight:900;line-height:1}.section-heading__description{color:var(--text-2);margin:0;font-size:18px;line-height:1.6}.card{box-sizing:border-box;background:var(--surface);border:var(--border-width) solid var(--ink);box-shadow:var(--shadow-card);padding:24px 28px}.card--flush{padding:0}.card--steel{box-shadow:var(--shadow-card-steel)}.chip{background:var(--surface);border:var(--border-width) solid var(--ink);box-shadow:var(--shadow-chip);font-family:var(--font-mono);padding:6px 10px;font-size:13px;font-weight:700;display:inline-block}.chip--muted{background:var(--surface-alt);box-shadow:none;padding:7px 11px}.chip--accent{color:var(--ink);box-shadow:none;letter-spacing:.08em;background:var(--gold);border-width:2px;padding:4px 8px;font-size:11px}.chip--neutral{color:var(--ink);box-shadow:none;letter-spacing:.08em;background:var(--surface-alt);border-width:2px;padding:4px 8px;font-size:11px}.chip--steel{box-shadow:3px 3px 0 var(--steel)}.chip--danger{color:var(--text-3);box-shadow:3px 3px 0 var(--danger)}.chip--small{padding:4px 8px;font-size:11px}.chip--muted.chip--small{border-width:1.5px}.button{box-sizing:border-box;min-height:var(--touch-target-size);border:var(--border-width) solid var(--ink);font-family:var(--font-sans);cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:16px;font-weight:800;text-decoration:none;display:inline-flex}.button:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.button:disabled{opacity:.6;cursor:not-allowed}.button--primary{min-height:max(var(--touch-target-size), 48px);background:var(--navy);color:var(--surface);box-shadow:5px 5px 0 var(--ink);transition:transform .12s,box-shadow .12s}@media (prefers-reduced-motion:no-preference) and (hover:hover){.button--primary:hover:not(:disabled){box-shadow:7px 7px 0 var(--ink);transform:translate(-2px,-2px)}}@media (prefers-reduced-motion:no-preference){.button--primary:active:not(:disabled){box-shadow:3px 3px 0 var(--ink);transform:translate(2px,2px)}}@media (prefers-reduced-motion:reduce){.button--primary{transition:none;animation:none}}.button--secondary{min-height:max(var(--touch-target-size), 46px);background:var(--surface);color:var(--ink);box-shadow:4px 4px 0 var(--steel);padding:0 18px;font-size:15px;transition:transform .12s,box-shadow .12s}@media (prefers-reduced-motion:no-preference) and (hover:hover){.button--secondary:hover:not(:disabled){box-shadow:6px 6px 0 var(--steel);transform:translate(-2px,-2px)}}@media (prefers-reduced-motion:no-preference){.button--secondary:active:not(:disabled){box-shadow:2px 2px 0 var(--steel);transform:translate(2px,2px)}}@media (prefers-reduced-motion:reduce){.button--secondary{transition:none;animation:none}}.button--compact{font-family:var(--font-mono);gap:8px;padding:0 18px;font-size:14px;font-weight:700}.button--primary.button--compact{min-height:var(--touch-target-size);box-shadow:3px 3px 0 var(--ink);transition:transform .12s,box-shadow .12s}@media (prefers-reduced-motion:no-preference) and (hover:hover){.button--primary.button--compact:hover:not(:disabled){box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}}@media (prefers-reduced-motion:no-preference){.button--primary.button--compact:active:not(:disabled){box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}}@media (prefers-reduced-motion:reduce){.button--primary.button--compact{transition:none;animation:none}}.button--secondary.button--compact{min-height:var(--touch-target-size)}.button--large{gap:12px;padding:0 20px;font-size:18px;font-weight:900}.button--primary.button--large{min-height:max(var(--touch-target-size), 60px);box-shadow:5px 5px 0 var(--ink);transition:transform .12s,box-shadow .12s}@media (prefers-reduced-motion:no-preference) and (hover:hover){.button--primary.button--large:hover:not(:disabled){box-shadow:7px 7px 0 var(--ink);transform:translate(-2px,-2px)}}@media (prefers-reduced-motion:no-preference){.button--primary.button--large:active:not(:disabled){box-shadow:2px 2px 0 var(--ink);transform:translate(3px,3px)}}@media (prefers-reduced-motion:reduce){.button--primary.button--large{transition:none;animation:none}}@media (width>=60rem){.button--primary.button--large{min-height:72px;box-shadow:7px 7px 0 var(--ink);gap:14px;padding:0 28px;font-size:22px;transition:transform .12s,box-shadow .12s}}@media (width>=60rem) and (prefers-reduced-motion:no-preference) and (hover:hover){.button--primary.button--large:hover:not(:disabled){box-shadow:9px 9px 0 var(--ink);transform:translate(-2px,-2px)}}@media (width>=60rem) and (prefers-reduced-motion:no-preference){.button--primary.button--large:active:not(:disabled){box-shadow:2px 2px 0 var(--ink);transform:translate(5px,5px)}}@media (width>=60rem) and (prefers-reduced-motion:reduce){.button--primary.button--large{transition:none;animation:none}}.button--full-width{width:100%;display:flex}.button__icon{display:inline-flex}.button--large .button__icon{font-size:18px}@media (width>=60rem){.button--large .button__icon{font-size:22px}}.button--large .button__icon--leading{font-size:24px}@media (width>=60rem){.button--large .button__icon--leading{font-size:30px}}.meta-item{color:var(--text-3);align-items:center;gap:7px;font-size:15px;display:inline-flex}.meta-item__icon{color:var(--navy);display:inline-flex}.experience-logo{box-sizing:border-box;border:var(--border-width) solid var(--ink);background:var(--surface-alt);flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}@media (width>=60rem){.experience-logo--card{width:76px;height:76px}}.experience-logo--detail{width:64px;height:64px}.experience-logo--fallback{background:var(--navy);color:var(--surface)}.experience-logo__image{object-fit:contain;width:100%;height:100%;display:block}.experience-card{grid-template-columns:48px minmax(0,1fr);gap:10px 12px;display:grid}@media (width>=60rem){.experience-card{flex-direction:row;align-items:center;gap:24px;display:flex}}.experience-card__logo{flex:none;grid-area:1/1/span 2;display:flex}.experience-card__body{display:contents}@media (width>=60rem){.experience-card__body{flex-direction:column;flex:auto;gap:8px;min-width:0;display:flex}}.experience-card__title{flex-wrap:wrap;grid-area:1/2;align-items:center;gap:12px;display:flex}.experience-card__tag{display:inline-flex}.experience-card__tag--title{display:none}@media (width>=60rem){.experience-card__tag--title{display:inline-flex}.experience-card__tag--meta{display:none}}.experience-card__company{margin:0;font-size:19px;font-weight:800;line-height:1.15}@media (width>=60rem){.experience-card__company{font-size:24px}}.experience-card__role{color:var(--steel);font-family:var(--font-mono);grid-area:2/2;font-size:13px;font-weight:700}@media (width>=60rem){.experience-card__role{font-size:15px}}.experience-card__meta{flex-wrap:wrap;grid-area:3/1/auto/-1;align-items:center;gap:6px 20px;display:flex}.experience-card__summary{color:var(--text-2);grid-area:4/1/auto/-1;margin:4px 0 0;font-size:15px;line-height:1.5}@media (width>=60rem){.experience-card__summary{font-size:16px;line-height:1.55}}.experience-card__action{grid-area:5/1/auto/-1;display:flex}@media (width>=60rem){.experience-card__action{flex:none}}.check-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.check-list__item{color:var(--text-2);align-items:flex-start;gap:10px;font-size:16px;line-height:1.5;display:flex}.check-list__icon{color:var(--navy);flex:none;padding-top:2px;display:inline-flex}.detail-section{flex-direction:column;gap:8px;display:flex}@media (width>=60rem){.detail-section{gap:10px}}.detail-section__heading{color:var(--navy);font-family:var(--font-mono);letter-spacing:.08em;margin:0;font-size:12px;font-weight:700}@media (width>=60rem){.detail-section__heading{font-size:13px}}.chip-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}@media (width>=60rem){.chip-list{gap:8px}}.chip-list__item{overflow-wrap:anywhere;min-width:0}.experience-detail{flex-direction:column;gap:16px;display:flex}@media (width>=60rem){.experience-detail{gap:22px}}.experience-detail__header{flex-wrap:wrap;align-items:center;gap:16px;display:flex}@media (width>=60rem){.experience-detail__header{gap:20px}}.experience-detail__summary{flex-direction:column;flex:220px;gap:6px;min-width:0;display:flex}.experience-detail__role{overflow-wrap:anywhere;color:var(--steel);font-family:var(--font-mono);font-size:13px;font-weight:700}@media (width>=60rem){.experience-detail__role{font-size:15px}}.experience-detail__meta{flex-wrap:wrap;gap:6px 16px;display:flex}.experience-detail__achievements{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.experience-detail__achievement{overflow-wrap:anywhere;background:var(--surface-alt);border:1.5px solid var(--ink);color:var(--text-2);padding:10px 14px;font-size:15px;line-height:1.5}.experience{box-sizing:border-box;max-width:1240px;margin:0 auto;padding:72px clamp(16px,2vw,24px) 0}@media (width>=60rem){.experience{padding-top:128px}}.experience-timeline__list{flex-direction:column;gap:22px;margin:28px 0 0;padding:0 0 0 30px;list-style:none;display:flex}@media (width>=60rem){.experience-timeline__list{gap:32px;margin-top:48px;padding-left:56px}}.experience-timeline__item{position:relative}.experience-timeline__item:not(:last-child):after{content:"";border-left:2px dashed var(--navy);width:0;position:absolute;top:31px;bottom:-53px;left:-21px}@media (width>=60rem){.experience-timeline__item:not(:last-child):after{top:43px;bottom:-75px;left:-41px}}.experience-timeline__node{z-index:1;box-sizing:border-box;background:var(--surface);border:3px solid var(--ink);width:16px;height:16px;position:absolute;top:24px;left:-28px;transform:rotate(45deg)}@media (width>=60rem){.experience-timeline__node{width:20px;height:20px;top:33px;left:-50px}}.experience-timeline__item--current .experience-timeline__node{background:var(--gold)}.degree-card{align-items:flex-start;gap:14px;padding:16px;display:flex}@media (width>=60rem){.degree-card{gap:20px;padding:24px 28px}}.degree-card__icon{box-sizing:border-box;background:var(--navy);border:var(--border-width) solid var(--ink);width:44px;height:44px;color:var(--surface);flex:none;justify-content:center;align-items:center;padding:10px;display:flex}@media (width>=60rem){.degree-card__icon{width:56px;height:56px;padding:13px}}.degree-card__icon--logo{background:var(--surface);padding:2px}@media (width>=60rem){.degree-card__icon--logo{padding:3px}}.degree-card__logo{object-fit:contain;width:100%;height:100%;display:block}.degree-card__body{flex-direction:column;flex:auto;gap:5px;min-width:0;display:flex}@media (width>=60rem){.degree-card__body{gap:8px}}.degree-card__tag{align-self:flex-start;display:inline-flex}.degree-card__title{overflow-wrap:anywhere;margin:0;font-size:17px;font-weight:800;line-height:1.25}@media (width>=60rem){.degree-card__title{font-size:22px;line-height:1.2}}.degree-card__school{overflow-wrap:anywhere;color:var(--steel);font-family:var(--font-mono);font-size:13px;font-weight:700}@media (width>=60rem){.degree-card__school{font-size:15px}}.degree-card__meta{overflow-wrap:anywhere;color:var(--text-3);flex-wrap:wrap;gap:8px 20px;font-size:13px;display:flex}@media (width>=60rem){.degree-card__meta{font-size:15px}}.languages-card{flex-direction:column;min-width:0;height:100%;display:flex}.languages-card__header{background:var(--surface-alt);border-bottom:var(--border-width) solid var(--ink);align-items:center;gap:10px;padding:10px 16px;display:flex}@media (width>=60rem){.languages-card__header{padding:10px 14px}}.languages-card__icon{color:var(--navy);display:none}@media (width>=60rem){.languages-card__icon{display:inline-flex}}.languages-card__title{margin:0;font-size:17px;font-weight:800}@media (width>=60rem){.languages-card__title{font-size:20px}}.languages-card__list{flex-direction:column;margin:0;padding:4px 16px 8px;list-style:none;display:flex}@media (width>=60rem){.languages-card__list{padding:8px 24px 16px}}.languages-card__row{border-bottom:1.5px dashed var(--line-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.languages-card__row:last-child{border-bottom:0}@media (width>=60rem){.languages-card__row{padding:16px 0}}.languages-card__text{overflow-wrap:anywhere;flex-direction:column;gap:2px;min-width:0;display:flex}.languages-card__name{font-size:16px;font-weight:800}@media (width>=60rem){.languages-card__name{font-size:18px}}.languages-card__level{color:var(--text-3);font-family:var(--font-mono);font-size:12px;font-weight:700}@media (width>=60rem){.languages-card__level{font-size:13px}}.languages-card__squares{gap:4px;display:flex}@media (width>=60rem){.languages-card__squares{gap:5px}}.languages-card__square{box-sizing:border-box;background:var(--surface);border:var(--border-width) solid var(--ink);width:12px;height:12px}@media (width>=60rem){.languages-card__square{width:14px;height:14px}}.languages-card__square--filled{background:var(--navy)}.education{box-sizing:border-box;max-width:1240px;margin:0 auto;padding:72px clamp(16px,2vw,24px) 0}@media (width>=60rem){.education{padding-top:128px}}.education__layout{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:28px;display:grid}@media (width>=60rem){.education__layout{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:stretch;gap:32px;margin-top:48px}}.education__degrees{flex-direction:column;gap:16px;min-width:0;margin:0;padding:0;list-style:none;display:flex}@media (width>=60rem){.education__degrees{gap:24px}}.education__degree{min-width:0}.contact-terminal{background:var(--surface-alt);border:var(--border-width) solid var(--ink);font-family:var(--font-mono);overflow-wrap:anywhere;padding:10px 12px;font-size:13px;line-height:1.8}@media (width>=60rem){.contact-terminal{padding:16px 18px;font-size:15px}}.contact-terminal__prompt{color:var(--steel);font-weight:700}.contact-terminal__line--command{align-items:center;gap:6px;display:flex}@media (width>=60rem){.contact-terminal__line--command{gap:8px}}.contact-terminal__command{font-weight:700}.contact-terminal__cursor{background:var(--navy);width:8px;height:16px;display:inline-block}@media (width>=60rem){.contact-terminal__cursor{width:10px;height:20px}}@keyframes terminal-cursor-blink{50%{opacity:0}}.contact-terminal__cursor{animation:1s step-end infinite terminal-cursor-blink}@media (prefers-reduced-motion:reduce){.contact-terminal__cursor{transition:none;animation:none}}.contact-window{padding:20px 8px 8px 0;position:relative}@media (width>=60rem){.contact-window{padding:28px 18px 18px 0}.contact-window__frame{transform:rotate(1deg)}}.contact-window__star{z-index:2;filter:drop-shadow(1px 0 0 var(--ink)) drop-shadow(-1px 0 0 var(--ink)) drop-shadow(0 1px 0 var(--ink)) drop-shadow(0 -1px 0 var(--ink));display:none;position:absolute}@media (width>=60rem){.contact-window__star{display:block}}.contact-window__star--gold{width:34px;height:34px;color:var(--gold);top:40px;left:-22px}.contact-window__star--white{width:22px;height:22px;color:var(--surface);top:88px;left:4px}.contact-window__body{flex-direction:column;gap:16px;padding:18px 16px 20px;display:flex}@media (width>=60rem){.contact-window__body{gap:24px;padding:30px 34px 34px}}.contact{box-sizing:border-box;grid-template-columns:minmax(0,1fr);gap:24px;max-width:1240px;margin:0 auto;padding:72px clamp(16px,2vw,24px) 0;display:grid}@media (width>=60rem){.contact{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:64px;padding-top:112px}}.contact__text{flex-direction:column;gap:16px;min-width:0;display:flex}@media (width>=60rem){.contact__text{gap:18px}}.contact__command{color:var(--steel);font-family:var(--font-mono);font-size:13px;font-weight:700}@media (width>=60rem){.contact__command{font-size:15px}}.contact__prompt{color:var(--ink)}.contact__title{letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;font-size:46px;font-weight:900;line-height:.95}@media (width>=60rem){.contact__title{font-size:clamp(48px,5.6vw,80px)}}.contact__title-mark{color:var(--steel)}.contact__paragraph{color:var(--text-2);margin:0;font-size:16px;line-height:1.6}@media (width>=60rem){.contact__paragraph{font-size:19px}}.contact__highlight{background:linear-gradient(transparent 62%, var(--gold) 62%, var(--gold) 92%, transparent 92%)}.contact__panel{min-width:0}.stack-window__groups{margin:0;padding:4px 16px 8px}@media (width>=60rem){.stack-window__groups{padding:8px 28px 16px}}.stack-window__group{border-bottom:1.5px dashed var(--line-muted);flex-direction:column;gap:8px;padding:12px 0;display:flex}.stack-window__group:last-child{border-bottom:0}@media (width>=60rem){.stack-window__group{flex-flow:wrap;align-items:center;gap:10px 16px;padding:16px 0}}.stack-window__name{min-width:0;color:var(--steel);font-family:var(--font-mono);overflow-wrap:anywhere;font-size:13px;font-weight:700}@media (width>=60rem){.stack-window__name{flex:0 0 150px;font-size:14px}}.stack-window__items{min-width:0;margin:0}@media (width>=60rem){.stack-window__items{flex:260px}}.working-style-panel{height:100%}@media (width>=60rem){.working-style-panel::details-content{content-visibility:visible;display:block}}.working-style-panel__summary{box-sizing:border-box;cursor:pointer;align-items:center;gap:10px;min-height:54px;padding:0 16px;list-style:none;display:flex}.working-style-panel__summary:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.working-style-panel__summary::-webkit-details-marker{display:none}@media (width>=60rem){.working-style-panel__summary{min-height:0;padding:24px 26px 0}}@supports selector(::details-content){@media (width>=60rem){.working-style-panel__summary{cursor:default;pointer-events:none}}}.working-style-panel__icon{color:var(--navy);display:none}@media (width>=60rem){.working-style-panel__icon{display:inline-flex}}.working-style-panel__title{overflow-wrap:anywhere;min-width:0;margin:0;font-size:17px;font-weight:800}@media (width>=60rem){.working-style-panel__title{font-size:20px}}.working-style-panel__count{color:var(--text-3);font-family:var(--font-mono);margin-left:auto;font-size:12px}@supports selector(::details-content){@media (width>=60rem){.working-style-panel__count{display:none}}}.working-style-panel__caret{color:var(--navy);display:inline-flex}@supports selector(::details-content){@media (width>=60rem){.working-style-panel__caret{display:none}}}.working-style-panel[open] .working-style-panel__caret{transform:rotate(180deg)}.working-style-panel__body{border-top:1.5px dashed var(--line-muted);padding:14px 16px 16px}@media (width>=60rem){.working-style-panel__body{border-top:0;padding:16px 26px 24px}}.working-style{flex-direction:column;gap:16px;min-width:0;display:flex}@media (width>=60rem){.working-style{align-self:stretch;gap:28px}}.working-style__item{min-width:0;display:grid}@media (width>=60rem){.working-style__item--grow{flex:auto}}.stack{box-sizing:border-box;max-width:1240px;margin:0 auto;padding:72px clamp(16px,2vw,24px) 0}@media (width>=60rem){.stack{padding-top:128px}}.stack__layout{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:28px;display:grid}@media (width>=60rem){.stack__layout{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:stretch;gap:32px;margin-top:48px}}.project-image{box-sizing:border-box;border-bottom:var(--border-width) solid var(--ink);justify-content:center;align-items:center;display:flex;overflow:hidden}.project-image--card{aspect-ratio:16/10}.project-image--detail{aspect-ratio:16/8}.project-image--placeholder{background-color:var(--navy);background-image:repeating-linear-gradient(45deg, var(--stripe-on-navy) 0 2px, transparent 2px 14px)}.project-image__placeholder-text{background:var(--surface);color:var(--ink);font-family:var(--font-mono);padding:6px 10px;font-size:12px;font-weight:700}.project-image__image{object-fit:cover;width:100%;height:100%;display:block}.project-card{flex-direction:column;min-width:0;height:100%;display:flex;position:relative}.project-card__path{background:var(--surface-alt);border-bottom:var(--border-width) solid var(--ink);color:var(--ink);font-family:var(--font-mono);overflow-wrap:anywhere;align-items:center;gap:8px;padding:9px 12px;font-size:12px;font-weight:700;display:flex}.project-card__icon{color:var(--steel);flex:none;display:inline-flex}.project-card__body{flex-direction:column;flex:auto;gap:12px;padding:20px 22px 22px;display:flex}.project-card__name{overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:800;line-height:1.2}.project-card__open{min-width:var(--touch-target-size);min-height:var(--touch-target-size);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;margin:0;padding:0;display:inline-flex}.project-card__open:after{content:"";position:absolute;inset:0}.project-card__open:focus-visible{outline:none}.project-card__open:focus-visible:after{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.project-card__description{color:var(--text-2);margin:0;font-size:15px;line-height:1.55}.project-card__more{color:var(--navy);font-family:var(--font-mono);align-items:center;gap:6px;margin-top:auto;padding-top:6px;font-size:12px;font-weight:700;display:inline-flex}@media (width>=60rem){.project-card__more{font-size:13px}}.project-detail{flex-direction:column;gap:16px;display:flex}@media (width>=60rem){.project-detail{gap:22px}}.project-detail__media{margin:calc(-1 * var(--dialog-content-padding-top,0px)) calc(-1 * var(--dialog-content-padding-inline,0px)) 0}.project-detail__body{flex-direction:column;gap:16px;display:flex}@media (width>=60rem){.project-detail__body{gap:22px}}.project-detail__description{overflow-wrap:anywhere;color:var(--text-2);margin:0;font-size:15px;line-height:1.6}@media (width>=60rem){.project-detail__description{font-size:16px}}.project-detail__links{flex-wrap:wrap;gap:14px;padding-top:4px;display:flex}.projects-indicator{justify-content:center;gap:6px;margin-top:4px;display:flex}@media (width>=60rem){.projects-indicator{display:none}}.projects-indicator__dot{background:var(--indicator-idle);width:6px;height:6px;transition:width .2s}@media (prefers-reduced-motion:reduce){.projects-indicator__dot{transition:none;animation:none}}.projects-indicator__dot--current{background:var(--navy);width:18px}.projects{--projects-gutter:clamp(16px, 2vw, 24px);box-sizing:border-box;max-width:1240px;padding:72px var(--projects-gutter) 0;margin:0 auto}@media (width>=60rem){.projects{padding-top:128px}}.projects__hint{color:var(--text-3);font-family:var(--font-mono);align-items:center;gap:8px;margin:10px 0 0;font-size:12px;font-weight:700;display:inline-flex}@media (width>=60rem){.projects__hint{display:none}}.projects__hint-icon{color:var(--steel);display:inline-flex}.projects__grid{margin:18px calc(-1 * var(--projects-gutter)) 0;padding:8px var(--projects-gutter) 16px;overscroll-behavior-x:contain;scroll-padding-inline:var(--projects-gutter);scroll-snap-type:x mandatory;gap:16px;list-style:none;display:flex;overflow:auto hidden}@media (width>=60rem){.projects__grid{scroll-snap-type:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:48px 0 0;padding:0;display:grid;overflow:visible}}.projects__item{scroll-snap-align:start;flex:0 0 min(82%,360px);min-width:0;display:grid}@media (width>=60rem){.projects__item{flex:initial}}.eraser-hint{--hint-x:49%;--hint-y:20%;--hint-radius:16cqw;pointer-events:none;position:absolute;inset:0;container-type:inline-size}@media (width>=60rem){.eraser-hint{--hint-y:16%}}.eraser-hint__peek{clip-path:circle(0 at var(--hint-x) var(--hint-y));background-color:var(--gold);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:20px 20px;animation:3.6s cubic-bezier(.4,0,.2,1) forwards eraser-hint-peek;position:absolute;inset:1px}@media (prefers-reduced-motion:reduce){.eraser-hint__peek{transition:none;animation:none}}.eraser-hint__peek-image{object-fit:cover;object-position:center top;width:100%;height:100%;display:block}.eraser-hint__ring{top:var(--hint-y);left:var(--hint-x);box-sizing:border-box;width:calc(var(--hint-radius) * 2 + 4cqw);aspect-ratio:1;border:3px dashed var(--surface);opacity:0;border-radius:50%;animation:3.6s forwards eraser-hint-ring;position:absolute;translate:-50% -50%}@media (prefers-reduced-motion:reduce){.eraser-hint__ring{transition:none;animation:none}}.eraser-hint__eraser{top:calc(var(--hint-y) + 1.5cqw);left:calc(var(--hint-x) + 4.5cqw);width:11.5cqw;height:11.5cqw;color:var(--ink);stroke:var(--surface);stroke-width:22px;stroke-linejoin:round;paint-order:stroke;opacity:0;animation:3.6s ease-in-out forwards eraser-hint-rub;position:absolute}@media (prefers-reduced-motion:reduce){.eraser-hint__eraser{transition:none;animation:none}}.eraser-hint__note{top:calc(var(--hint-y) + var(--hint-radius) + 3cqw);left:var(--hint-x);background:var(--surface);border:var(--border-width) solid var(--ink);box-shadow:var(--shadow-chip);color:var(--ink);font-family:var(--font-mono);white-space:nowrap;opacity:0;padding:7px 11px;font-size:12px;font-weight:700;animation:3.6s forwards eraser-hint-note;position:absolute;translate:-50%}@media (prefers-reduced-motion:reduce){.eraser-hint__note{transition:none;animation:none}}@keyframes eraser-hint-peek{0%{clip-path:circle(0 at var(--hint-x) var(--hint-y))}22%{clip-path:circle(calc(var(--hint-radius) * .9) at var(--hint-x) var(--hint-y))}40%{clip-path:circle(calc(var(--hint-radius) * 1.03) at var(--hint-x) var(--hint-y))}58%{clip-path:circle(calc(var(--hint-radius) * .97) at var(--hint-x) var(--hint-y))}74%{clip-path:circle(var(--hint-radius) at var(--hint-x) var(--hint-y))}to{clip-path:circle(0 at var(--hint-x) var(--hint-y))}}@keyframes eraser-hint-ring{0%,12%{opacity:0;transform:scale(.6)rotate(0)}26%{opacity:1;transform:scale(1)rotate(30deg)}76%{opacity:1;transform:scale(1)rotate(90deg)}to{opacity:0;transform:scale(.6)rotate(120deg)}}@keyframes eraser-hint-rub{0%{opacity:0;transform:translate(7.5cqw,-7.5cqw)rotate(-10deg)}8%{opacity:1;transform:translate(0)rotate(-6deg)}16%{transform:translate(-3.5cqw,1cqw)rotate(-14deg)}24%{transform:translate(3.5cqw,-1cqw)rotate(4deg)}32%{transform:translate(-3.5cqw,1.5cqw)rotate(-14deg)}40%{transform:translate(3.5cqw,-.5cqw)rotate(4deg)}48%{transform:translate(-2.5cqw,1cqw)rotate(-12deg)}56%{transform:translate(2.5cqw)rotate(2deg)}66%{opacity:1;transform:translate(0)rotate(-6deg)}80%,to{opacity:0;transform:translate(6.5cqw,6.5cqw)rotate(-6deg)}}@keyframes eraser-hint-note{0%,20%{opacity:0;transform:translateY(6px)rotate(4deg)}30%,80%{opacity:1;transform:translateY(0)rotate(4deg)}to{opacity:0;transform:translateY(-4px)rotate(4deg)}}.reveal-celebration{pointer-events:none;position:absolute;inset:0;overflow:hidden}.reveal-celebration__shine{background:linear-gradient(100deg, transparent 0%, transparent 20%, color-mix(in srgb, var(--surface) 85%, transparent) 50%, transparent 80%, transparent 100%);opacity:0;width:45%;animation:1.1s cubic-bezier(.4,0,.2,1) .6s forwards reveal-celebration-sweep;position:absolute;top:-20%;bottom:-20%;left:-60%;transform:skew(-18deg)translate(0)}@media (prefers-reduced-motion:reduce){.reveal-celebration__shine{transition:none;animation:none}}.reveal-celebration__star{top:var(--star-top);left:var(--star-left);width:var(--star-size);height:var(--star-size);color:var(--surface);stroke:var(--ink);stroke-width:14px;stroke-linejoin:round;paint-order:stroke;opacity:0;animation:reveal-celebration-pop .5s cubic-bezier(.3, 1.6, .5, 1) calc(.45s + var(--star-delay)) forwards, reveal-celebration-twinkle 1.2s ease-in-out calc(.45s + var(--star-delay) + .5s) 3, reveal-celebration-out .6s ease calc(.45s + var(--star-delay) + 4.1s) forwards;position:absolute;transform:translate(-50%,-50%)scale(0)}@media (prefers-reduced-motion:reduce){.reveal-celebration__star{transition:none;animation:none}}.reveal-celebration__star--gold{color:var(--gold)}@keyframes reveal-celebration-sweep{0%{opacity:1;transform:skew(-18deg)translate(0)}to{opacity:1;transform:skew(-18deg)translate(420%)}}@keyframes reveal-celebration-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(0)rotate(-45deg)}to{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}}@keyframes reveal-celebration-twinkle{0%,to{transform:translate(-50%,-50%)scale(1)rotate(0)}50%{transform:translate(-50%,-50%)scale(.6)rotate(20deg)}}@keyframes reveal-celebration-out{to{opacity:0;transform:translate(-50%,-50%)scale(0)}}.eraser-photo{box-sizing:border-box;aspect-ratio:1;background:var(--ink);border:var(--border-width) solid var(--ink);width:100%;position:relative;overflow:hidden}@media (width>=60rem){.eraser-photo{aspect-ratio:4/5}}.eraser-photo__illustration{background-color:var(--gold);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:20px 20px;position:absolute;inset:1px}.eraser-photo__illustration-image{object-fit:cover;object-position:center top;width:100%;height:100%;display:block}.eraser-photo__photo{object-fit:cover;background:var(--ink);width:100%;height:100%;display:block;position:absolute;inset:0}.eraser-photo--active .eraser-photo__photo{visibility:hidden}.eraser-photo__canvas{touch-action:none;user-select:none;cursor:url(/cursor/eraser.svg) 7 22,crosshair;width:100%;height:100%;display:block;position:absolute;inset:0}.eraser-photo__canvas--revealed{opacity:0;pointer-events:none;transition:opacity .5s}@media (prefers-reduced-motion:reduce){.eraser-photo__canvas--revealed{transition:none;animation:none}}.eraser-photo__credit{z-index:2;min-height:44px;color:var(--ink);align-items:center;padding:0 10px;font-size:12px;font-weight:700;text-decoration:underline;display:inline-flex;position:absolute;top:8px;right:8px}.eraser-photo__credit:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.eraser-photo__description{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}@media (width>=60rem){.explorer{transform:rotate(var(--rotate-a))}}.explorer__body{background:var(--surface);display:flex}.explorer__sidebar{box-sizing:border-box;border-right:var(--border-width) solid var(--ink);background:var(--surface-alt);flex:none;width:132px;padding:12px 0;font-size:12px;font-weight:500;display:none}@media (width>=60rem){.explorer__sidebar{display:block}}.explorer__list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.explorer__item{color:var(--ink);cursor:pointer;align-items:center;gap:7px;padding:6px 12px;text-decoration:none;display:flex}.explorer__item svg{flex:none}@media (hover:hover){.explorer__item:hover{background:color-mix(in srgb, var(--steel) 18%, var(--surface-alt));color:var(--navy)}}.explorer__item:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px;outline-offset:calc(var(--focus-ring-width) * -1)}.explorer__item--selected{background:var(--steel);color:var(--surface);font-weight:700}@media (hover:hover){.explorer__item--selected:hover{background:var(--navy);color:var(--surface)}}.explorer__photo{box-sizing:border-box;flex:auto;min-width:0;padding:10px}@media (width>=60rem){.explorer__photo{padding:14px}}.explorer__status{border-top:var(--border-width) solid var(--ink);background:var(--surface-alt);color:var(--text-3);align-items:center;gap:12px;padding:6px 12px;font-size:11px;font-weight:500;display:flex}.explorer__status-selected{color:var(--navy);margin-left:auto;font-weight:700}.hero-card{display:grid}@media (width>=60rem){.hero-card{transform:rotate(var(--rotate-b))}}.hero-card__content{box-sizing:border-box;flex-direction:column;justify-content:center;gap:clamp(14px,1.6vw,22px);min-height:100%;padding:clamp(0px,1.2vw,16px);display:flex}.hero-card__title{letter-spacing:-.03em;margin:0;font-size:clamp(46px,5.6vw,80px);font-weight:900;line-height:.95}.hero-card__name{z-index:0;color:var(--navy);position:relative}.hero-card__name:before{content:"";z-index:-1;background:var(--gold);height:28%;position:absolute;inset:auto 0 8%}.hero-card__role{font-family:var(--font-mono);color:var(--steel);flex-wrap:wrap;align-items:center;gap:10px;margin:0;font-size:clamp(15px,1.3vw,17px);font-weight:700;display:flex}.hero-card__prompt{color:var(--ink)}.hero-card__cursor{background:var(--navy);width:10px;height:20px;animation:1s step-end infinite terminal-cursor-blink;display:inline-block}@media (prefers-reduced-motion:reduce){.hero-card__cursor{transition:none;animation:none}}.hero-card__intro{max-width:640px;color:var(--text-2);margin:0;font-size:clamp(16px,1.3vw,18px);line-height:1.6}.hero-card__actions{flex-direction:column;gap:14px;padding-top:2px;display:flex}@media (width>=60rem){.hero-card__actions{flex-flow:wrap}}.hero-section{box-sizing:border-box;max-width:1240px;padding:calc(var(--nav-offset) + clamp(24px, 4vw, 56px)) clamp(16px, 2vw, 24px) 0;grid-template-columns:minmax(0,1fr);gap:24px;margin:0 auto;display:grid}@media (width>=60rem){.hero-section{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:stretch;gap:48px}}.credits{flex-direction:column;gap:12px;padding:18px 22px 20px;display:flex}.credits__heading{color:var(--steel);font-family:var(--font-mono);letter-spacing:.08em;margin:0;font-size:12px;font-weight:700}.credits__list{color:var(--text-2);flex-wrap:wrap;gap:10px 28px;margin:0;padding:0;font-size:14px;line-height:1.5;list-style:none;display:flex}.credits__link{color:var(--ink);font-weight:700}@media (hover:hover){.credits__link:hover{color:var(--navy)}}.credits__link:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.credits__license{color:var(--text-3)}.site-footer{box-sizing:border-box;max-width:1240px;margin:clamp(72px,10vw,128px) auto clamp(24px,3vw,40px);padding:0 clamp(16px,2vw,24px)}.site-footer__card{background:var(--surface);border:var(--border-width) solid var(--ink);box-shadow:6px 6px 0 var(--ink)}.site-footer__bar{border-bottom:var(--border-width) solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;display:flex}.site-footer__name{font-family:var(--font-mono);align-items:center;gap:10px;font-size:15px;font-weight:700;display:inline-flex}.site-footer__mark{background:var(--navy);width:28px;height:28px;color:var(--surface);justify-content:center;align-items:center;display:inline-flex}.site-footer__top{min-height:var(--touch-target-size);color:var(--ink);font-family:var(--font-mono);align-items:center;gap:6px;padding:0 4px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}@media (hover:hover){.site-footer__top:hover{color:var(--navy)}}.site-footer__top:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.language-switch{font-family:var(--font-mono);align-items:center;font-size:13px;display:inline-flex}@media (width>=60rem){.language-switch{border-left:1.5px solid var(--grid-line);margin-left:6px;padding-left:12px}}.language-switch__separator{color:var(--text-3)}.language-switch__option{min-width:var(--touch-target-size);min-height:var(--touch-target-size);color:var(--text-3);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 6px}.language-switch__option:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.language-switch__option--active{text-underline-offset:5px;color:var(--ink);font-weight:700;text-decoration:underline 2px}.mobile-menu{max-height:calc(100vh - var(--nav-offset) - 1rem);max-height:max(8rem, 100dvh - var(--nav-offset) - 1rem);background:var(--surface);border:var(--border-width) solid var(--ink);box-shadow:4px 4px 0 var(--ink);font-family:var(--font-mono);pointer-events:auto;margin-top:8px;font-size:16px;font-weight:700;overflow-y:auto}@media (width>=60rem){.mobile-menu{display:none}}.mobile-menu__list{margin:0;padding:0;list-style:none}.mobile-menu__link{border-bottom:1.5px dashed var(--grid-line);min-height:52px;color:var(--ink);justify-content:space-between;align-items:center;padding:0 16px;text-decoration:none;display:flex}@media (hover:hover){.mobile-menu__link:hover{color:var(--navy)}}.mobile-menu__link:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px;outline-offset:calc(var(--focus-ring-width) * -1)}.mobile-menu__arrow{color:var(--steel);display:inline-flex}.mobile-menu__contact{margin:12px}.site-nav{z-index:100;pointer-events:none;padding:12px 16px 0;position:fixed;top:0;left:0;right:0}@media (width>=60rem){.site-nav{padding:28px 24px 0}}.site-nav__navigation{box-sizing:border-box;max-width:1192px;margin:0 auto}.site-nav__card{box-sizing:border-box;background:var(--surface);border:var(--border-width) solid var(--ink);box-shadow:4px 4px 0 var(--ink);pointer-events:auto;align-items:center;gap:8px;padding:6px 6px 6px 10px;display:flex}@media (width>=60rem){.site-nav__card{box-shadow:5px 5px 0 var(--ink);justify-content:space-between;gap:16px;padding:10px 12px 10px 16px}}.site-nav__logo{min-height:var(--touch-target-size);color:var(--ink);font-family:var(--font-mono);align-items:center;gap:8px;font-size:14px;font-weight:700;text-decoration:none;display:flex}@media (width>=60rem){.site-nav__logo{gap:10px;font-size:16px}}.site-nav__logo:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.site-nav__logo-mark{background:var(--navy);width:28px;height:28px;color:var(--surface);justify-content:center;align-items:center;display:inline-flex}@media (width>=60rem){.site-nav__logo-mark{width:32px;height:32px}}.site-nav__items{font-family:var(--font-mono);align-items:center;gap:4px;margin-left:auto;font-size:14px;font-weight:500;display:flex}@media (width>=60rem){.site-nav__items{margin-left:0}}.site-nav__link{min-height:var(--touch-target-size);color:var(--ink);align-items:center;padding:0 14px;text-decoration:none;display:none}@media (width>=60rem){.site-nav__link{display:inline-flex}}@media (hover:hover){.site-nav__link:hover{color:var(--navy)}}.site-nav__link:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.site-nav__contact{display:none}@media (width>=60rem){.site-nav__contact{margin-left:8px;display:block}}.site-nav__menu-toggle{width:var(--touch-target-size);height:var(--touch-target-size);background:var(--navy);color:var(--surface);border:var(--border-width) solid var(--ink);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (width>=60rem){.site-nav__menu-toggle{display:none}}.site-nav__menu-toggle:focus-visible{outline:var(--focus-ring-width) solid var(--steel);outline-offset:2px}.site-nav__spacer{height:var(--nav-offset)}
