:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0,0,0,.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#0d6efd;--bs-link-hover-color:#0a58ca;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fff;background-color:var(--bs-body-bg);color:#212529;color:var(--bs-body-color);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:400;font-weight:var(--bs-body-font-weight);line-height:1.5;line-height:var(--bs-body-line-height);text-align:var(--bs-body-text-align)}hr{border:0;border-top:1px solid;color:inherit;margin:1rem 0;opacity:.25}h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.2;margin-bottom:.5rem;margin-top:0}h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media(min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:1rem;margin-top:0}abbr[title]{cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-left:2rem}dl,ol,ul{margin-bottom:1rem;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{background-color:#fff3cd;background-color:var(--bs-highlight-bg);padding:.1875em}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;color:var(--bs-link-color);text-decoration:underline}a:hover{color:#0a58ca;color:var(--bs-link-hover-color)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;font-size:.875em;margin-bottom:1rem;margin-top:0;overflow:auto}pre code{color:inherit;font-size:inherit;word-break:normal}code{word-wrap:break-word;color:#d63384;color:var(--bs-code-color);font-size:.875em}a>code{color:inherit}kbd{background-color:#212529;background-color:var(--bs-body-color);border-radius:.25rem;color:#fff;color:var(--bs-body-bg);font-size:.875em;padding:.1875rem .375rem}kbd kbd{font-size:1em;padding:0}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{border-collapse:collapse;caption-side:bottom}caption{color:#6c757d;padding-bottom:.5rem;padding-top:.5rem;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border:0 solid;border-color:inherit}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{border-style:none;padding:0}textarea{resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{float:left;font-size:calc(1.275rem + .3vw);line-height:inherit;margin-bottom:.5rem;padding:0;width:100%}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::file-selector-button{-webkit-appearance:button;font:inherit}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:initial}[hidden]{display:none!important}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{height:auto;transition:width .35s ease;width:0}@media(prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:#fff;--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:1px;--bs-modal-border-radius:0.5rem;--bs-modal-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,.075);--bs-modal-inner-border-radius:calc(0.5rem - 1px);--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:1px;--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:1px;display:none;height:100%;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100%;z-index:var(--bs-modal-zindex)}.modal-dialog{margin:var(--bs-modal-margin);pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{-webkit-transform:translateY(-50px);transform:translateY(-50px);transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}@media(prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{background-clip:padding-box;background-color:var(--bs-modal-bg);border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);color:var(--bs-modal-color);display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;background-color:var(--bs-backdrop-bg);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:var(--bs-backdrop-zindex)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{align-items:center;border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius);display:flex;flex-shrink:0;justify-content:space-between;padding:var(--bs-modal-header-padding)}.modal-header .btn-close{margin:calc(var(--bs-modal-header-padding-y)*-.5) calc(var(--bs-modal-header-padding-x)*-.5) calc(var(--bs-modal-header-padding-y)*-.5) auto;padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5)}.modal-title{line-height:var(--bs-modal-title-line-height);margin-bottom:0}.modal-body{flex:1 1 auto;padding:var(--bs-modal-padding);position:relative}.modal-footer{align-items:center;background-color:var(--bs-modal-footer-bg);border-bottom-left-radius:var(--bs-modal-inner-border-radius);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:0 0.5rem 1rem rgba(0,0,0,.15)}.modal-dialog{margin-left:auto;margin-right:auto;max-width:var(--bs-modal-width)}.modal-sm{--bs-modal-width:300px}}@media(min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media(min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width:575.98px){.modal-fullscreen-sm-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-sm-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width:767.98px){.modal-fullscreen-md-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-md-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width:991.98px){.modal-fullscreen-lg-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-lg-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width:1199.98px){.modal-fullscreen-xl-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-xl-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width:1399.98px){.modal-fullscreen-xxl-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-xxl-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Nunito Sans,Yu Gothic,Meiryo,Segoe UI,sans-serif;margin:0}@font-face{font-display:swap;font-family:Nunito Sans;font-style:normal;font-weight:200 1000;src:url(/static/media/nunito-sans-latin-wght-normal.6592cb44c9bc164ec03e.woff2) format("woff2")}:root{--page:#fff8e8;--surface:#fffcf6;--surface-alt:#fff5e1;--ink-default:#081823;--muted-default:#133b58;--accent-default:#16636f;--accent-ink:#fffcf6;--accent-fill:#16636f;--theme-blend:0;--button-sheen-opacity:.15;--secondary-default:#834d37;--secondary-ink:#fffcf6;--border-default:#82765b;--edge:#e5d0a1;--focus-default:#114c56;--wash:#dff5f9;--shadow:rgba(8,24,35,.09);--button-shadow:rgba(8,24,35,.26);--hero-light:#fffcf6;--hero-gold:#f6dcaf;--hero-rgb:8,24,35;--hero-ocean:#2f93db;--highlight-rgb:255,252,246;scroll-behavior:auto}body[data-theme=dark]{--page:#051026;--surface:#1e2046;--surface-alt:#292b60;--ink-default:#f2e5e3;--muted-default:#cebdda;--accent-default:#fce0a2;--accent-ink:#051026;--accent-fill:#fce0a2;--theme-blend:1;--secondary-default:#cebdda;--secondary-ink:#1e2046;--border-default:#af94c3;--edge:#4a4fae;--focus-default:#fce0a2;--wash:#0c275f;--shadow:rgba(5,16,38,.32);--button-shadow:rgba(5,16,38,.5);--hero-light:#f2e5e3;--hero-gold:#fce0a2;--hero-rgb:5,16,38;--hero-ocean:#113888;--highlight-rgb:242,229,227}html{font-size:100%;scroll-padding-top:7rem}body{--ink:var(--page-ink,var(--ink-default));--muted:var(--page-muted,var(--muted-default));--accent:var(--page-accent,var(--accent-default));--secondary:var(--page-secondary,var(--secondary-default));--border:var(--page-border,var(--border-default));--focus:var(--page-focus,var(--focus-default));background-color:#fff8e8;background-color:var(--page);color:var(--ink);font-size:1rem;line-height:1.65}.gallery-dots button,.language-controls button,.modal-inside .modal-content,.project-card,.project-year,.shore-button-secondary,.shore-panel,.site-navigation,.social-links a{--ink:var(--surface-ink,var(--ink-default));--muted:var(--surface-muted,var(--muted-default));--accent:var(--surface-accent,var(--accent-default));--secondary:var(--surface-secondary,var(--secondary-default));--border:var(--surface-border,var(--border-default));--focus:var(--surface-focus,var(--focus-default));color:var(--ink)}.motion-toggle,.nav-language select,.project-gallery,.project-image-wrap,.site-footer,.skills-tile,.tech-list li,.technology-chip{--ink:var(--surface-alt-ink,var(--ink-default));--muted:var(--surface-alt-muted,var(--muted-default));--accent:var(--surface-alt-accent,var(--accent-default));--secondary:var(--surface-alt-secondary,var(--secondary-default));--border:var(--surface-alt-border,var(--border-default));--focus:var(--surface-alt-focus,var(--focus-default));color:var(--ink)}.archive-note,.brand-emblem,.career-focus li,.career-marker,.nav-links a.active,.nav-links a:hover,.section-emblem{--ink:var(--wash-ink,var(--ink-default));--muted:var(--wash-muted,var(--muted-default));--accent:var(--wash-accent,var(--accent-default));--secondary:var(--wash-secondary,var(--secondary-default));--border:var(--wash-border,var(--border-default));--focus:var(--wash-focus,var(--focus-default));color:var(--ink)}*,:after,:before{box-sizing:border-box}button,select{font:inherit}a,button,select{-webkit-tap-highlight-color:rgba(0,0,0,0)}button:disabled,select:disabled{cursor:wait;opacity:.65}button{cursor:pointer}a{color:var(--accent);text-underline-offset:.2em}h1,h2,h3,h4{color:inherit;font-weight:800;letter-spacing:-.025em;line-height:1.2}p{margin:0 0 1rem}img{max-width:100%}h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,h3[tabindex="-1"]:focus,main:focus{outline:none}:where(button,a,select,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:5px}.icon{fill:currentColor;display:inline-block;flex-shrink:0;height:1.15em;vertical-align:-.15em;width:1.15em}.icon.shore-icon{fill:none}.section-shell{margin-inline:auto;width:min(1120px,100% - 3rem)}.about-section,.experience-section,.shore-section,.skills-section{padding-block:clamp(3rem,6vw,5rem)}.section-heading{margin-bottom:2rem;max-width:720px}.section-title{font-size:clamp(1.9rem,3.7vw,2.7rem);margin:.6rem 0 1rem}.section-title-row{align-items:center;display:flex;gap:1rem;margin:.6rem 0 1rem}.section-title-row .section-emblem{flex-shrink:0}.section-title-row .section-title{margin:0;min-width:0}.eyebrow,.section-kicker{align-items:center;color:var(--secondary);display:flex;font-size:.8rem;font-weight:800;gap:.55rem;letter-spacing:.1em;text-transform:uppercase}.section-intro{color:var(--muted);margin-bottom:0;max-width:64ch}.brand-emblem,.career-marker,.section-emblem{align-items:center;background-color:#dff5f9;background-color:var(--wash);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:50%;box-shadow:inset 0 2px 0 rgba(255,252,246,.28),0 3px 0 rgba(8,24,35,.09);box-shadow:inset 0 2px 0 rgba(var(--highlight-rgb),.28),0 3px 0 var(--shadow);color:var(--accent);display:inline-flex;justify-content:center}.section-emblem{font-size:1.4rem;height:3rem;width:3rem}.shore-panel{background-color:#fffcf6;background-color:var(--surface);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1.4rem;box-shadow:0 8px 24px rgba(8,24,35,.09),inset 0 2px 0 rgba(255,252,246,.1);box-shadow:0 8px 24px var(--shadow),inset 0 2px 0 rgba(var(--highlight-rgb),.1)}.gallery-dots button,.language-controls button,.portfolio-status button,.shore-button,.shore-icon-button{align-items:center;background-color:#16636f;background-color:var(--accent-fill);background-image:linear-gradient(rgba(255,252,246,.15),rgba(255,252,246,0));background-image:linear-gradient(rgba(var(--highlight-rgb),var(--button-sheen-opacity)),rgba(var(--highlight-rgb),0));border:1px solid var(--border);border-radius:1rem;box-shadow:inset 0 2px 0 rgba(255,252,246,.25),0 3px 0 rgba(8,24,35,.26);box-shadow:inset 0 2px 0 rgba(var(--highlight-rgb),.25),0 3px 0 var(--button-shadow);color:#fffcf6;color:var(--accent-ink);display:inline-flex;font-size:.9rem;font-weight:800;gap:.6rem;justify-content:center;line-height:1.4;min-height:48px;padding:.7rem 1.15rem;text-decoration:none}.gallery-dots button:hover,.language-controls button:hover,.shore-button:hover,.shore-icon-button:hover{color:#fffcf6;color:var(--accent-ink);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.shore-button:active,.shore-icon-button:active{-webkit-transform:translateY(1px);transform:translateY(1px)}.shore-button-secondary{background-color:#fffcf6;background-color:var(--surface);background-image:none;border-color:var(--border);color:var(--muted)}.shore-button-secondary:hover{color:var(--muted)}.shore-icon-button{font-size:1.15rem;min-height:46px;padding:.6rem;width:46px}.skip-link{background:#16636f;background:var(--accent-fill);border-radius:.8rem;font-weight:800;left:.7rem;padding:.8rem 1.2rem;position:fixed;top:.7rem;-webkit-transform:translateY(-200%);transform:translateY(-200%);z-index:2000}.skip-link,.skip-link:focus{color:#fffcf6;color:var(--accent-ink)}.skip-link:focus{-webkit-transform:translateY(0);transform:translateY(0)}.site-navigation{background-color:#fffcf6;background-color:var(--surface);border-bottom:1px solid #e5d0a1;border-bottom:1px solid var(--edge);box-shadow:0 3px 15px rgba(8,24,35,.09);box-shadow:0 3px 15px var(--shadow);position:-webkit-sticky;position:sticky;top:0;z-index:30}.site-nav{grid-gap:1.2rem;align-items:center;display:grid;gap:1.2rem;grid-template-columns:auto 1fr auto;min-height:80px;padding-block:.65rem}.nav-brand{align-items:center;color:var(--ink);display:inline-flex;font-weight:900;gap:.65rem;text-decoration:none;white-space:nowrap}.nav-brand:hover{color:var(--accent)}.brand-emblem{font-size:1.3rem;height:2.7rem;width:2.7rem}.nav-links{align-items:center;display:flex;gap:.3rem;justify-content:center}.nav-links a{align-items:center;border-radius:.8rem;color:var(--muted);display:inline-flex;font-size:.86rem;font-weight:800;gap:.4rem;min-height:44px;padding:.55rem .65rem;text-decoration:none;white-space:nowrap}.nav-links a.active,.nav-links a:hover{background-color:#dff5f9;background-color:var(--wash);color:var(--accent)}.nav-controls{align-items:center;display:flex;gap:.5rem;justify-content:flex-end}.nav-language select{border:1px solid var(--border);border-radius:.85rem;color:var(--ink);font-size:.8rem;font-weight:700;max-width:6.5rem;min-height:46px;padding:.45rem}.motion-toggle,.nav-language select{background-color:#fff5e1;background-color:var(--surface-alt)}.motion-toggle{background-image:none;border-color:var(--border)}.motion-toggle,.motion-toggle:hover{color:var(--muted)}.site-header{align-items:flex-end;background-color:#2f93db;background-color:var(--hero-ocean);display:flex;justify-content:center;min-height:clamp(390px,58svh,540px);overflow:hidden;padding:3rem 1.5rem 2.4rem;position:relative}.site-header:before{background:linear-gradient(rgba(8,24,35,.04) 15%,rgba(8,24,35,.38) 48%,rgba(8,24,35,.82));background:linear-gradient(rgba(var(--hero-rgb),.04) 15%,rgba(var(--hero-rgb),.38) 48%,rgba(var(--hero-rgb),.82) 100%);content:"";inset:0;pointer-events:none;position:absolute;z-index:1}.seaside-background,.seaside-canvas,.seaside-poster{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.seaside-poster{background-position:center 60%;background-size:cover}.seaside-poster-dusk{opacity:0;opacity:var(--theme-blend)}.seaside-canvas{opacity:0}.seaside-background[data-ready=true] .seaside-canvas{opacity:1}.seaside-video{display:none}.lighthouse-beam{height:100%;inset:0;mix-blend-mode:screen;opacity:0;opacity:var(--theme-blend);pointer-events:none;position:absolute;width:100%;z-index:0}.site-header:not([data-lighthouse-active=true]) .lighthouse-beam{display:none}.header-content{max-width:850px;position:relative;text-align:center;width:100%;z-index:2}.header-content,.hero-eyebrow{color:#fffcf6;color:var(--hero-light)}.hero-eyebrow{background:rgba(8,24,35,.85);background:rgba(var(--hero-rgb),.85);border-radius:.7rem;display:inline-block;font-size:.73rem;font-weight:800;letter-spacing:.09em;margin:0 0 .7rem;padding:.35rem .7rem;text-transform:uppercase}.site-header h1{font-size:clamp(2.8rem,6vw,4.7rem);letter-spacing:-.015em;line-height:1.05;margin:0;text-shadow:0 3px 14px rgba(8,24,35,.7);text-shadow:0 3px 14px rgba(var(--hero-rgb),.7)}.title-container{font-size:clamp(1.05rem,2vw,1.5rem);font-weight:700;line-height:1.45;margin:1rem auto 1.4rem;max-width:720px;text-shadow:0 2px 5px rgba(8,24,35,.9);text-shadow:0 2px 5px rgba(var(--hero-rgb),.9)}.header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}.hero-button{background-color:#f6dcaf;background-color:var(--hero-gold);border-color:#f6dcaf;border-color:var(--hero-gold)}.hero-button,.hero-button:hover{color:#081823;color:rgb(var(--hero-rgb))}.hero-button-secondary{background-color:rgba(8,24,35,.9);background-color:rgba(var(--hero-rgb),.9);border-color:#fffcf6;border-color:var(--hero-light)}.hero-button-secondary,.hero-button-secondary:hover,.hero-github{color:#fffcf6;color:var(--hero-light)}.hero-github{align-items:center;display:inline-flex;font-size:.87rem;font-weight:800;gap:.5rem;min-height:44px;padding:.65rem .4rem;text-decoration:none}.hero-github:hover{color:#f6dcaf;color:var(--hero-gold)}.header-actions :focus-visible{outline-color:#fffcf6;outline-color:var(--hero-light)}.portfolio-intro{grid-gap:2rem;align-items:center;border-bottom:1px solid #e5d0a1;border-bottom:1px solid var(--edge);display:grid;gap:2rem;grid-template-columns:1fr auto;padding-block:2.6rem}.intro-copy{max-width:73ch}.intro-copy h2{font-size:1.55rem;margin:.5rem 0 .7rem}.intro-copy .section-title-row h2{margin:0;min-width:0}.intro-copy p:last-child{color:var(--muted);margin-bottom:0}.intro-actions{display:flex;flex-direction:column;gap:.7rem}.portfolio-section{background-color:#fff8e8;background-color:var(--page)}.project-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,minmax(0,1fr))}.project-card-shell{min-width:0}.project-card{background-color:#fffcf6;background-color:var(--surface);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1.4rem;box-shadow:0 7px 20px rgba(8,24,35,.09);box-shadow:0 7px 20px var(--shadow);color:var(--ink);display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0;text-align:left;width:100%}.project-card:hover{border-color:var(--border);box-shadow:0 12px 26px rgba(8,24,35,.09);box-shadow:0 12px 26px var(--shadow);-webkit-transform:translateY(-4px);transform:translateY(-4px)}.project-image-wrap{background-color:#fff5e1;background-color:var(--surface-alt);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:.9rem;display:block;margin:.65rem .65rem 0;overflow:hidden;position:relative}.project-image-wrap img{aspect-ratio:16/10;display:block;height:auto;object-fit:contain;width:100%}.project-year{background-color:#fffcf6;background-color:var(--surface);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:.6rem;bottom:.65rem;color:var(--ink);font-size:.74rem;font-weight:800;padding:.2rem .6rem;position:absolute;right:.65rem}.project-card-content{display:flex;flex:1 1;flex-direction:column;gap:.9rem;padding:1.25rem}.project-card-meta{display:block}.archive-label,.current-project-label{align-items:center;color:var(--secondary);display:inline-flex;font-size:.72rem;font-weight:800;gap:.35rem}.project-title{display:block;font-size:1.23rem;font-weight:900;letter-spacing:-.02em;line-height:1.35}.project-summary{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--muted);display:-webkit-box;font-size:.9rem;line-height:1.65;overflow:hidden}.tech-list,.technology-chips{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}.tech-list li,.technology-chip{align-items:center;background-color:#fff5e1;background-color:var(--surface-alt);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:.55rem;color:var(--muted);display:inline-flex;font-size:.75rem;font-weight:700;gap:.35rem;line-height:1.35;padding:.32rem .6rem}.project-card-action{align-items:center;border-top:1px solid #e5d0a1;border-top:1px solid var(--edge);color:var(--accent);display:flex;font-size:.83rem;font-weight:900;gap:.6rem;justify-content:space-between;margin-top:auto;padding-top:.9rem}.project-card-action .icon{font-size:1.25rem}.selected-project-row{margin-bottom:3.5rem}.project-grid.current-project-grid{grid-template-columns:1fr}.current-project-grid .project-card{align-items:center;display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.5fr)}.current-project-grid .project-image-wrap{margin:.75rem}.current-project-grid .project-card-content{padding:1.5rem}.current-project-grid .project-summary{-webkit-line-clamp:4}.case-study-card{grid-gap:clamp(1.5rem,3vw,2.5rem);align-items:center;display:grid;gap:clamp(1.5rem,3vw,2.5rem);grid-template-columns:minmax(220px,.7fr) minmax(0,1.5fr);margin-bottom:3.5rem;padding:clamp(1.25rem,3vw,2rem)}.case-study-media{position:relative}.case-study-brand{align-items:center;background-color:#fffcf6;border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1rem;display:flex;justify-content:center;min-height:200px;padding:clamp(1.25rem,3vw,2rem)}.case-study-brand img{display:block;height:auto;max-width:320px;width:100%}.case-study-card-photo{border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1rem;overflow:hidden}.case-study-card-photo img{display:block;height:auto;width:100%}.case-study-emblem{--ink:var(--surface-alt-ink,var(--ink-default));--muted:var(--surface-alt-muted,var(--muted-default));--accent:var(--surface-alt-accent,var(--accent-default));--secondary:var(--surface-alt-secondary,var(--secondary-default));--border:var(--surface-alt-border,var(--border-default));--focus:var(--surface-alt-focus,var(--focus-default));align-items:center;background-color:#fff5e1;background-color:var(--surface-alt);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1rem;color:var(--accent);display:flex;justify-content:center;min-height:200px}.case-study-emblem .icon{height:100px;width:100px}.case-study-card-copy{min-width:0}.case-study-card h3{font-size:clamp(1.5rem,3vw,2rem);margin:.6rem 0}.case-study-subtitle{color:var(--muted);font-weight:750;line-height:1.6;margin-bottom:.9rem}.case-study-summary{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--muted);display:-webkit-box;margin-bottom:1rem;max-width:70ch;overflow:hidden}.case-study-status{--ink:var(--wash-ink,var(--ink-default));--muted:var(--wash-muted,var(--muted-default));--accent:var(--wash-accent,var(--accent-default));--secondary:var(--wash-secondary,var(--secondary-default));--border:var(--wash-border,var(--border-default));--focus:var(--wash-focus,var(--focus-default));background-color:#dff5f9;background-color:var(--wash);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:.75rem;color:var(--muted);font-size:.85rem;line-height:1.6;padding:.75rem 1rem}.case-study-card .technology-chips{margin:1.1rem 0 1.5rem}.project-archive-heading{margin-bottom:1.5rem;max-width:70ch}.project-archive-heading h3{font-size:1.4rem;margin-bottom:.6rem}.case-study-page{padding-block:clamp(2.5rem,6vw,4.5rem)}.case-study-back-link{align-items:center;display:inline-flex;font-size:.9rem;font-weight:800;gap:.6rem;margin-bottom:1.4rem;min-height:44px}.case-study-page .section-heading{max-width:850px}.case-study-page .section-intro{font-size:1.05rem}.case-study-overview{grid-gap:1.6rem;align-items:center;display:grid;gap:1.6rem;grid-template-columns:230px minmax(0,1fr);margin-bottom:2rem;padding:clamp(1.25rem,3vw,2rem)}.case-study-overview .case-study-brand{min-height:150px;padding:1.2rem}.case-study-overview .case-study-emblem{min-height:150px}.case-study-brand.case-study-media,.case-study-emblem.case-study-media{padding-bottom:3rem}.case-study-figure{grid-column:1/-1;margin:.5rem 0 0}.case-study-figure .case-study-media{margin-inline:auto;width:min(100%,520px)}.case-study-figure figcaption{color:var(--muted);font-size:.85rem;line-height:1.6;margin-top:.75rem;text-align:center}.case-study-overview-copy{min-width:0}.case-study-organization{font-weight:800;margin-bottom:.6rem}.case-study-overview .technology-chips{margin-top:1rem}.case-study-layout{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:220px minmax(0,1fr)}.case-study-contents{--ink:var(--surface-ink,var(--ink-default));--muted:var(--surface-muted,var(--muted-default));--accent:var(--surface-accent,var(--accent-default));--secondary:var(--surface-secondary,var(--secondary-default));--border:var(--surface-border,var(--border-default));--focus:var(--surface-focus,var(--focus-default));background-color:#fffcf6;background-color:var(--surface);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1rem;color:var(--ink);max-height:calc(100dvh - 8rem);overflow-y:auto;padding:1.25rem;position:-webkit-sticky;position:sticky;top:7rem}.case-study-contents-label{font-size:1rem;font-weight:800;margin:0 0 .8rem}.case-study-contents ul{list-style:none;margin:0;padding:0}.case-study-contents a{align-items:center;color:var(--muted);display:flex;font-size:.85rem;line-height:1.5;min-height:44px;padding:.6rem 0;text-decoration:none}.case-study-contents a:hover{color:var(--accent);text-decoration:underline}.case-study-contents a[aria-current=location]{--ink:var(--wash-ink,var(--ink-default));--muted:var(--wash-muted,var(--muted-default));--accent:var(--wash-accent,var(--accent-default));--secondary:var(--wash-secondary,var(--secondary-default));--border:var(--wash-border,var(--border-default));--focus:var(--wash-focus,var(--focus-default));background-color:#dff5f9;background-color:var(--wash);border-radius:.6rem;color:var(--accent);font-weight:800;padding-inline:.6rem}.case-study-body{min-width:0;padding:clamp(1.3rem,3vw,2.4rem)}.case-study-section h3{font-size:1.4rem;margin:0 0 1rem}.case-study-section p{color:var(--muted);line-height:1.85;max-width:72ch}.case-study-section p:last-child{margin-bottom:0}.case-study-section .case-study-evidence-date{font-size:.85rem;font-weight:800;margin:-.35rem 0 1rem}.case-study-evidence-video,.case-study-transcript{margin:1.5rem 0 0;min-width:0}.case-study-evidence-video video{aspect-ratio:16/9;background:#172325;border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1rem;display:block;height:auto;width:100%}.case-study-evidence-video figcaption,.case-study-transcript figcaption{color:var(--muted);font-size:.85rem;line-height:1.7;margin-top:.75rem}.case-study-video-link{align-items:center;display:inline-flex;font-size:.9rem;gap:.6rem;margin-top:.5rem;min-height:44px}.case-study-transcript pre{--ink:var(--surface-alt-ink,var(--ink-default));--muted:var(--surface-alt-muted,var(--muted-default));--accent:var(--surface-alt-accent,var(--accent-default));--secondary:var(--surface-alt-secondary,var(--secondary-default));--border:var(--surface-alt-border,var(--border-default));--focus:var(--surface-alt-focus,var(--focus-default));background-color:#fff5e1;background-color:var(--surface-alt);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:.75rem;color:var(--ink);font-size:.8rem;line-height:1.75;margin:.75rem 0 0;overflow-x:auto;padding:1rem}.case-study-section+.case-study-section{border-top:1px solid #e5d0a1;border-top:1px solid var(--edge);margin-top:2rem;padding-top:2rem}.case-study-decisions{grid-gap:1.5rem;display:grid;gap:1.5rem;list-style:none;margin:0;padding:0}.case-study-decisions h4{font-size:1.05rem;line-height:1.5;margin:0 0 .4rem}.case-study-footer-actions{margin-top:2rem}.case-study-sources ul{grid-gap:.75rem;display:grid;gap:.75rem;list-style:none;margin:0;padding:0}.case-study-sources a{align-items:center;display:inline-flex;gap:.6rem;line-height:1.6;min-height:44px}.case-study-sources a .icon{flex-shrink:0}.project-detail-actions{display:flex;flex-wrap:wrap;gap:.75rem}.skills-section{border-bottom:1px solid #e5d0a1;border-bottom:1px solid var(--edge);border-top:1px solid #e5d0a1;border-top:1px solid var(--edge)}.skills-groups{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}.skills-group{min-width:0;padding:1.6rem}.skills-group h3{align-items:center;display:flex;font-size:1.2rem;gap:.65rem;margin:0 0 1.4rem}.skills-group h3 .icon{color:var(--accent)}.skills-list{display:flex;flex-wrap:wrap;gap:.7rem;list-style:none;margin:0;padding:0}.skills-list li,.skills-tile{max-width:100%}.skills-tile{align-items:center;background-color:#fff5e1;background-color:var(--surface-alt);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:.8rem;color:var(--ink);display:inline-flex;font-size:.9rem;font-weight:750;gap:.65rem;line-height:1.5;min-height:44px;padding:.7rem .85rem;text-decoration:none}.skills-tile .icon{color:var(--accent);flex-shrink:0;font-size:1.4rem}.skills-tile .skill-evidence-arrow{height:1rem;width:1rem}a.skills-tile:hover{border-color:var(--accent);text-decoration:underline;text-underline-offset:.2em}.career-timeline{list-style:none;margin:0;padding:0 0 0 4.5rem;position:relative}.career-timeline:before{background-color:#e5d0a1;background-color:var(--edge);border-radius:2px;bottom:1.5rem;content:"";left:1.4rem;position:absolute;top:1.5rem;width:3px}.career-entry{margin-bottom:1.5rem;position:relative}.career-entry:last-child{margin-bottom:0}.career-marker{font-size:1.3rem;height:2.9rem;left:-4.5rem;position:absolute;top:1.5rem;width:2.9rem}.career-entry:first-child .career-marker{background-color:#16636f;background-color:var(--accent-fill);border-color:var(--border);color:#fffcf6;color:var(--accent-ink)}.career-card{padding:clamp(1.4rem,3vw,2.1rem)}.career-date{color:var(--secondary);display:inline-block;font-size:.8rem;font-weight:900;margin:0 0 .8rem}.career-role{font-size:clamp(1.15rem,2.5vw,1.45rem);margin:0 0 .5rem}.career-company{color:var(--accent);font-size:1rem;font-weight:800;margin:0 0 1.1rem}.career-focus li{background-color:#dff5f9;background-color:var(--wash);color:var(--muted)}.experience-summary{color:var(--muted);font-size:.96rem;line-height:1.8;margin:1.4rem 0;max-width:86ch}.experience-summary p:last-child{margin-bottom:0}.about-copy{padding:clamp(1.25rem,2vw,1.75rem)}.about-copy h3{font-size:clamp(1.4rem,2.5vw,1.7rem);margin:0 0 .75rem}.about-copy p{color:var(--muted);line-height:1.65;margin:0 0 .65rem;max-width:none}.about-focus{margin:1rem 0 .8rem}.about-actions{display:flex;flex-wrap:wrap;gap:.8rem}.credentials-grid{grid-gap:1.8rem;display:grid;gap:1.8rem;grid-template-columns:1fr 1fr;margin-top:1.8rem}.credentials-panel{padding:1.7rem}.credentials-panel h3{align-items:center;display:flex;font-size:1.2rem;gap:.7rem;margin-bottom:1.2rem}.credentials-panel h3 .icon{color:var(--accent)}.credentials-list{color:var(--muted);margin:0;padding-left:1.15rem}.credentials-list li{margin-bottom:.65rem;padding-left:.2rem}.credentials-list li:last-child{margin-bottom:0}.credential-link,.credential-title{font-weight:800}.credential-link{display:inline}.credential-link .icon{font-size:.9em;margin-left:.4rem}.credential-meta{color:var(--muted);display:block;font-size:.8rem;line-height:1.6;margin-top:.25rem}.credentials-list:has(.credential-meta) li{margin-bottom:1.15rem}.site-footer{background-color:#fff5e1;background-color:var(--surface-alt);border-top:1px solid #e5d0a1;border-top:1px solid var(--edge);margin-top:1rem;padding:3rem 0 1.4rem}.footer-bottom,.footer-shell{align-items:center;display:flex;gap:2rem;justify-content:space-between;margin-inline:auto;width:min(1120px,100% - 3rem)}.footer-connect h2{font-size:1.8rem;margin-bottom:.7rem}.footer-connect p{color:var(--muted)}.social-links{display:flex;flex-wrap:wrap;gap:.65rem;list-style:none;margin:1.3rem 0 0;padding:0}.social-links a{align-items:center;background-color:#fffcf6;background-color:var(--surface);border:1px solid var(--border);border-radius:.85rem;color:var(--muted);display:inline-flex;font-size:.85rem;font-weight:800;gap:.6rem;min-height:44px;padding:.55rem .85rem;text-decoration:none}.social-links a:hover{color:var(--accent)}.social-links .icon{font-size:1.25rem}.language-controls{display:flex;flex-shrink:0;gap:.6rem}.language-controls button{background-color:#fffcf6;background-color:var(--surface);background-image:none;border-color:var(--border);color:var(--muted)}.language-controls button:hover{color:var(--muted)}.gallery-dots button[aria-pressed=true],.language-controls button[aria-pressed=true]{background-color:#16636f;background-color:var(--accent-fill);background-image:linear-gradient(rgba(255,252,246,.15),rgba(255,252,246,0));background-image:linear-gradient(rgba(var(--highlight-rgb),var(--button-sheen-opacity)),rgba(var(--highlight-rgb),0));color:#fffcf6;color:var(--accent-ink)}.footer-bottom{border-top:1px solid #e5d0a1;border-top:1px solid var(--edge);color:var(--muted);flex-wrap:wrap;font-size:.8rem;gap:.75rem 1.5rem;margin-top:2.1rem;padding-top:1.3rem}.back-to-top{align-items:center;color:var(--muted);display:inline-flex;font-weight:800;gap:.5rem;min-height:44px;text-decoration:none}.footer-bottom-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.shore-note{grid-gap:1rem;align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto;margin:1.5rem auto 0;padding:1.1rem 1.25rem;width:min(1120px,100% - 3rem)}.shore-note[hidden]{display:none}.shore-note h3{font-size:1.05rem;margin:.2rem 0 .5rem}.shore-note p{color:var(--muted);font-size:.9rem;margin:0;max-width:72ch}.shore-note-trigger .icon{height:1.3em;width:1.3em}.modal-inside .modal-dialog{margin-inline:auto;max-width:1040px;padding-inline:1rem}.modal-inside .modal-content{background-color:#fffcf6;background-color:var(--surface);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1.5rem;box-shadow:0 20px 60px rgba(8,24,35,.26);box-shadow:0 20px 60px var(--button-shadow);color:var(--ink);overflow:hidden}.modal-inside .modal-header{align-items:flex-start;border-bottom:1px solid #e5d0a1;border-bottom:1px solid var(--edge);gap:1rem;padding:1.6rem}.modal-inside .modal-title{font-size:clamp(1.25rem,3vw,1.8rem);margin:0}.project-modal-year{align-items:center;color:var(--secondary);display:flex;font-size:.75rem;font-weight:800;gap:.4rem;margin-bottom:.5rem}.project-close{flex-shrink:0;margin-left:auto}.project-modal-body{padding:1.6rem}.project-gallery{background-color:#fff5e1;background-color:var(--surface-alt);border:1px solid #e5d0a1;border:1px solid var(--edge);border-radius:1rem;padding:.7rem}.project-screenshot{margin:0;text-align:center}.project-screenshot img{border-radius:.5rem;display:block;height:auto;max-height:48svh;object-fit:contain;width:100%}.project-screenshot figcaption{color:var(--muted);font-size:.8rem;margin-top:.7rem}.project-image-open{align-items:center;display:inline-flex;font-size:.8rem;font-weight:800;gap:.5rem;margin-top:.3rem;min-height:44px}.gallery-controls{align-items:center;gap:.6rem;margin-top:1rem}.gallery-controls,.gallery-dots{display:flex;flex-wrap:wrap;justify-content:center}.gallery-dots{gap:.45rem}.gallery-dots button{background-color:#fffcf6;background-color:var(--surface);background-image:none;border-color:var(--border);border-radius:.8rem;color:var(--muted);min-height:44px;min-width:44px;padding:.4rem}.project-detail-copy{padding-top:1.5rem}.modal-description{color:var(--muted);line-height:1.8}.project-highlights{grid-gap:1.25rem;display:grid;gap:1.25rem;list-style:none;margin:1.5rem 0;padding:0}.project-highlight-title{font-size:1rem;line-height:1.5;margin:0 0 .4rem}.project-highlight p{color:var(--muted);line-height:1.8;margin:0}.archive-note{align-items:flex-start;background-color:#dff5f9;background-color:var(--wash);border-radius:.75rem;color:var(--muted);display:flex;font-size:.8rem;gap:.65rem;margin:1.3rem 0;padding:.9rem 1rem}.archive-note .icon{margin-top:.2rem}.project-detail-actions{margin-top:1.25rem}.portfolio-status{margin:0 auto;max-width:720px;padding:4rem 1.5rem;text-align:center}.portfolio-status h2{font-size:2rem}.about-copy p,.archive-label,.archive-note,.back-to-top,.brand-emblem,.career-company,.career-date,.career-marker,.career-timeline:before,.credential-meta,.credentials-list,.experience-summary,.eyebrow,.footer-bottom,.footer-connect p,.gallery-dots button,.intro-copy,.language-controls button,.modal-content,.modal-description,.modal-header,.nav-brand,.nav-language select,.nav-links a,.portfolio-intro,.project-card,.project-card-action,.project-gallery,.project-image-wrap,.project-modal-year,.project-summary,.project-title,.project-year,.section-emblem,.section-heading,.section-intro,.section-kicker,.section-title,.shore-button,.shore-icon-button,.shore-panel,.site-footer,.site-navigation,.skills-group h3,.skills-section,.skills-tile,.social-links a,.tech-list li,.technology-chip,body{transition:box-shadow .25s ease,-webkit-transform .18s ease;transition:box-shadow .25s ease,transform .18s ease;transition:box-shadow .25s ease,transform .18s ease,-webkit-transform .18s ease}html[lang=ja]{font-family:Nunito Sans,Yu Gothic,Meiryo,sans-serif}html[lang=ja] h1,html[lang=ja] h2,html[lang=ja] h3,html[lang=ja] h4{letter-spacing:0;line-height:1.45}html[lang=ja] .site-header h1{letter-spacing:-.015em}@media(max-width:1100px){.nav-brand .brand-name{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.case-study-layout{grid-template-columns:1fr}.case-study-contents{max-height:none;overflow:visible;position:static}.case-study-contents ul{grid-gap:.2rem 1rem;display:grid;gap:.2rem 1rem;grid-template-columns:1fr 1fr}.case-study-card{gap:1.25rem;grid-template-columns:230px minmax(0,1fr)}.site-nav{gap:.4rem 1rem;grid-template-columns:1fr auto}.nav-links{grid-column:1/-1;grid-row:2;justify-content:space-between}.nav-controls{grid-column:2;grid-row:1}.nav-brand .brand-name{display:inline}.nav-links a{padding-inline:.5rem}.portfolio-intro{gap:1.3rem;grid-template-columns:1fr}.intro-actions{flex-direction:row;flex-wrap:wrap}.skills-groups{grid-template-columns:1fr}.footer-shell{align-items:flex-start;flex-direction:column;gap:1.5rem}html{scroll-padding-top:9rem}}@media(max-width:600px){.shore-note{gap:.75rem;padding:1rem;width:calc(100% - 2rem)}.footer-bottom-actions{gap:.85rem}.case-study-card,.case-study-overview,.current-project-grid .project-card{grid-template-columns:1fr}.current-project-grid .project-card-content{padding:1.25rem}.case-study-brand,.case-study-emblem{min-height:160px}.case-study-brand img{max-width:260px}.case-study-card{margin-bottom:2.5rem}.case-study-card .shore-button{width:100%}.case-study-contents ul{grid-template-columns:1fr}.footer-bottom,.footer-shell,.section-shell{width:calc(100% - 2rem)}.credentials-grid,.project-grid{grid-template-columns:1fr}.career-timeline{padding-left:2rem}.career-timeline:before{left:.45rem;width:2px}.career-marker{height:1rem;left:-2rem;top:2.3rem;width:1rem}.career-marker .icon{display:none}.career-card,.credentials-panel,.skills-group{padding:1.25rem}.footer-bottom{flex-wrap:wrap;gap:1rem}.modal-inside .modal-dialog{padding-inline:.5rem}.modal-inside .modal-header,.project-modal-body{padding:1rem}.modal-inside .modal-header{display:block;position:relative}.project-close{position:absolute;right:1rem;top:1rem}.project-modal-year{min-height:46px;padding-right:3.5rem}.project-gallery{padding:.5rem}}@media(max-width:500px){.nav-brand .brand-name{display:none}.site-nav{padding-block:.55rem}.nav-links{gap:.1rem}.nav-links a{font-size:.8rem;padding-inline:.25rem}.nav-links .icon{display:none}.site-header{min-height:400px;padding:2rem 1rem 1.9rem}.seaside-poster{background-position:31%}.site-header h1{font-size:clamp(2.6rem,11vw,3.3rem)}.hero-eyebrow{font-size:.65rem;letter-spacing:.035em}.title-container{background-color:rgba(8,24,35,.78);background-color:rgba(var(--hero-rgb),.78);border-radius:.8rem;font-size:1rem;padding:.4rem .6rem}.header-actions{gap:.65rem}.header-actions .shore-button{font-size:.8rem;padding:.65rem .85rem}.hero-github{justify-content:center;width:100%}.project-card-content{padding:1.15rem}.project-title{font-size:1.15rem}.gallery-dots{display:none}}@media(prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important}.lighthouse-beam,.motion-toggle,.seaside-canvas{display:none}.project-card:hover,.shore-button:hover,.shore-icon-button:hover{-webkit-transform:none;transform:none}}
/*# sourceMappingURL=main.e3014998.css.map*/