@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";:root{color:#323b3b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#faf7f0;--surface:#f2ede3;--ink:#323b3b;--muted:#666d65;--accent:#a45137;--accent-soft:#e9d3bc;--line:#dedbd0;--sky-top:#e5e6df;--sky-bottom:#f1d9af;--sun:#f6dfb0;--cloud:#faf5e9;--mountain-far:#b9c5c4;--mountain-near:#889c99;--snow:#ecede5;--water-top:#c9d2c6;--water-bottom:#e3dbbf;--water-line:#f4f0df;--shore:#879383;--tree-dark:#526e64;--branch:#7e6651;--leaf-color:#b97343;background:#faf7f0;font-family:DM Sans,sans-serif}:root[data-season=winter]{--paper:#f3f6f7;--surface:#e7eef1;--ink:#2d414d;--muted:#566d7a;--accent:#496d86;--accent-soft:#c6d9e4;--line:#d4dfe4;--sky-top:#ccdce8;--sky-bottom:#e6e9ec;--sun:#f2f2de;--cloud:#f5f7fa;--mountain-far:#acbfd1;--mountain-near:#7c99b0;--snow:#f0f5f8;--water-top:#b5cdd9;--water-bottom:#e0e8ed;--water-line:#f3f6fa;--shore:#aabfc9;--tree-dark:#527586;--branch:#64727c;--leaf-color:#d9e5ec}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{background:var(--paper);color:var(--ink);margin:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}::selection{background:var(--accent-soft)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--paper);z-index:100;padding:12px;position:fixed;top:-60px;left:20px}.skip-link:focus{top:10px}html{scroll-padding-top:115px}.header{--nav-ease:cubic-bezier(.22,.68,.22,1);z-index:40;width:100%;height:90px;transition:top .75s var(--nav-ease),height .75s var(--nav-ease),border-color .6s ease;background:0 0;border:0;border-bottom:1px solid #67766c20;position:fixed;inset:0 0 auto}.header .nav-inner{box-sizing:border-box;background:color-mix(in srgb,var(--paper) 0%,transparent);-webkit-backdrop-filter:blur();width:calc(100% - 100px);max-width:1180px;height:100%;transition:width .75s var(--nav-ease),max-width .75s var(--nav-ease),padding .75s var(--nav-ease),gap .75s var(--nav-ease),border-radius .75s var(--nav-ease),border-color .6s ease,background .12s ease,box-shadow .75s ease,backdrop-filter .2s ease;border:1px solid #0000;border-radius:0;justify-content:space-between;align-items:center;gap:25px;margin-inline:auto;padding-inline:0;display:flex;position:relative;box-shadow:0 0 #24393100}.header.header-pinned{border-bottom-color:#0000;height:66px;top:14px}.header.header-pinned .nav-inner{background:var(--paper);border-color:var(--line);-webkit-backdrop-filter:blur(18px);border-radius:12px;gap:20px;width:calc(100% - 56px);max-width:1080px;padding-inline:24px;box-shadow:0 8px 30px #24393112}.header .wordmark{transition:font-size .75s var(--nav-ease);font-size:37px}.header .wordmark small{letter-spacing:1.8px;transition:font-size .75s var(--nav-ease),letter-spacing .75s var(--nav-ease),margin .75s var(--nav-ease);margin-left:20px;font-size:9px}.header.header-pinned .wordmark{font-size:31px}.header.header-pinned .wordmark small{letter-spacing:1.4px;margin-left:14px;font-size:8px}.header .nav-links{transition:gap .75s var(--nav-ease),font-size .75s var(--nav-ease);gap:31px;font-size:14px}.header.header-pinned .nav-links{gap:22px;font-size:13px}.header .nav-links a{transition:color .4s}.header .nav-links a[aria-current=location]{color:var(--accent)}.header .nav-links a[aria-current=location]:after{width:100%}.header .nav-controls{transition:gap .75s var(--nav-ease);gap:15px}.header .season-switch{background:color-mix(in srgb,var(--paper) 65%,transparent);transition:padding .75s var(--nav-ease),background .75s ease;padding:4px}.header .season-switch button{transition:font-size .75s var(--nav-ease),padding .75s var(--nav-ease),background .4s ease,color .4s ease;padding:7px 11px;font-size:13px}.header.header-pinned .season-switch{background:var(--surface);padding:3px}.header.header-pinned .season-switch button{padding:7px 10px;font-size:11px}@media (width<=1050px){.header .nav-inner{gap:20px;width:calc(100% - 64px)}.header.header-pinned .nav-inner{gap:15px;width:calc(100% - 40px);padding-inline:20px}.header .wordmark small{display:none}.header .nav-links{gap:22px}.header.header-pinned .nav-links{gap:18px}}@media (width<=700px){html{scroll-padding-top:100px}.header{height:74px}.header .nav-inner{gap:12px;width:calc(100% - 40px)}.header.header-pinned{height:60px;top:10px}.header.header-pinned .nav-inner{border-radius:10px;width:calc(100% - 24px);padding-inline:15px}.header .wordmark{font-size:32px}.header.header-pinned .wordmark{font-size:29px}.header .season-switch button{padding:6px 9px;font-size:12px}.header.header-pinned .season-switch button{padding:7px 10px;font-size:12px}.header .nav-links{font-size:12px;top:100%}.header.header-pinned .nav-links{border:1px solid var(--line);background:var(--paper);border-radius:10px;gap:10px;padding:15px;top:calc(100% + 9px);left:-1px;right:-1px;box-shadow:0 10px 25px #24393110}.header .menu-toggle{min-width:36px;min-height:36px;font-size:20px}.header .nav-controls{gap:12px}.header.header-pinned .nav-controls{gap:8px}.header.header-pinned .nav-links a{padding:10px 5px;font-size:12px}}.portfolio.motion-paused .header,.portfolio.motion-paused .header *{transition:none!important}@media (prefers-reduced-motion:reduce){.portfolio:not(.motion-enabled) .header,.portfolio:not(.motion-enabled) .header *{transition:none!important}}.header .season-switch{border-color:color-mix(in srgb,var(--accent) 22%,var(--line))}.header .season-switch button{color:var(--muted)}.header .season-switch button[aria-pressed=true]{background:var(--accent);color:var(--paper)}.header .season-switch button[aria-pressed=false]:hover{background:var(--accent-soft);color:var(--accent)}.header .season-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.seasonal-image-viewer{--viewer-tint:#c99b63;--viewer-scrim:#302a24b8;--viewer-text:#fff7e9;--viewer-line:#efcfaa32;--viewer-glass:#ecd0aa12;width:100vw;max-width:100vw;height:100svh;max-height:100svh;box-shadow:none;color:var(--viewer-text);isolation:isolate;background:radial-gradient(at 12% 15%,#c7883b12,#0000 45%),radial-gradient(at 90% 90%,#bc784b12,#0000 45%);border:0;border-radius:0;outline:none;margin:0;padding:20px 32px;position:fixed;inset:0;overflow:hidden}[data-season=winter] .seasonal-image-viewer{--viewer-tint:#c3e3f3;--viewer-scrim:#1a303eb8;--viewer-text:#f0f8ff;--viewer-line:#c5e9ff32;--viewer-glass:#bddff312;background:radial-gradient(at 12% 15%,#c4e5ff13,#0000 45%),radial-gradient(at 90% 90%,#779dcb16,#0000 45%)}.seasonal-image-viewer[open]{grid-template-rows:auto minmax(0,1fr) auto;gap:15px;display:grid}.seasonal-image-viewer::backdrop{background:var(--viewer-scrim);-webkit-backdrop-filter:blur(12px)}:root:not([data-season=winter]) .seasonal-image-viewer::backdrop{background:#302a24b8}:root[data-season=winter] .seasonal-image-viewer::backdrop{background:#1a303eb8}.viewer-heading{z-index:2;justify-content:space-between;align-items:center;gap:25px;width:min(1280px,100%);margin-inline:auto;display:flex}.viewer-heading-copy{align-items:center;gap:22px;min-width:0;display:flex}.viewer-counter{letter-spacing:2px;color:var(--viewer-tint);white-space:nowrap;font:italic 16px Playfair Display,serif}.viewer-collection{letter-spacing:2px;color:var(--viewer-tint);opacity:.75;margin-bottom:6px;font-size:9px;display:block}.viewer-heading h2{letter-spacing:.1px;max-width:850px;margin:0;font:400 14px/1.6 DM Sans,sans-serif}.viewer-close{background:var(--viewer-glass);width:42px;height:42px;color:var(--viewer-text);border:1px solid var(--viewer-line);border-radius:50%;flex-shrink:0;place-items:center;font-size:19px;transition:background .3s,transform .3s;display:grid}.viewer-close:hover{background:#ffffff14;transform:rotate(9deg)}.viewer-image-stage{z-index:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative;overflow:visible}.viewer-image-stage>img{object-fit:contain;transform-origin:0 0;filter:drop-shadow(0 20px 35px #0000002b);border:0;border-radius:0;width:auto;max-width:100%;height:auto;max-height:100%;margin:0;display:block}.viewer-image-stage.viewer-zoomed{overscroll-behavior:contain;scrollbar-color:var(--viewer-tint) transparent;scrollbar-width:thin;display:block;overflow:auto}.viewer-zoomed>img{object-fit:initial;width:150%;max-width:none;max-height:none;margin:0}.viewer-bottom{z-index:2;width:min(1240px,100%);min-width:0;margin-inline:auto;position:relative}.viewer-caption{color:var(--viewer-text);opacity:.8;text-align:center;margin:0 0 10px;font:italic 13px/1.6 Playfair Display,serif}.viewer-controls{border:1px solid var(--viewer-line);background:var(--viewer-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:40px;flex-wrap:wrap;justify-content:center;align-items:center;gap:23px;width:fit-content;max-width:100%;margin:0 auto;padding:3px 16px;display:flex}.viewer-controls button,.viewer-controls a{color:var(--viewer-text);opacity:.78;background:0 0;border:0;align-items:center;gap:9px;min-height:40px;padding:7px 2px;font:12px DM Sans,sans-serif;transition:opacity .25s,color .25s;display:inline-flex}.viewer-controls button:hover,.viewer-controls a:hover{opacity:1;color:var(--viewer-tint)}.viewer-controls button:disabled{opacity:.3;cursor:default}.seasonal-image-viewer :focus-visible{outline:2px solid var(--viewer-tint);outline-offset:3px}.viewer-thumbnails{scrollbar-width:thin;scrollbar-color:var(--viewer-tint) transparent;justify-content:flex-start;gap:8px;max-width:760px;margin:0 auto 12px;padding:4px;display:flex;overflow-x:auto}.viewer-thumbnails button{background:var(--viewer-glass);border:1px solid var(--viewer-line);opacity:.55;border-radius:3px;flex:0 0 68px;padding:3px;transition:opacity .25s,border-color .25s;position:relative}.viewer-thumbnails button:hover,.viewer-thumbnails button[aria-pressed=true]{opacity:1;border-color:var(--viewer-tint)}.viewer-thumbnails img{object-fit:cover;object-position:top;width:100%;height:40px}.viewer-thumbnails span{background:var(--viewer-scrim);color:var(--viewer-text);padding:2px 3px;font-size:8px;position:absolute;bottom:3px;right:3px}.viewer-atmosphere{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.viewer-atmosphere>span{left:var(--drift-x);background:var(--viewer-tint);opacity:.12;width:9px;height:15px;animation:viewer-drift 24s var(--drift-delay) linear infinite;border-radius:0 80%;position:absolute;top:-10%}[data-season=winter] .viewer-atmosphere>span{opacity:.24;border-radius:50%;width:5px;height:5px;box-shadow:0 0 7px #d9efff80}@keyframes viewer-drift{0%{transform:translate(30px,-30px)rotate(0)}to{transform:translate(-90px,115svh)rotate(260deg)}}@media (width<=700px){.seasonal-image-viewer{gap:12px;padding:14px}.viewer-heading{gap:14px}.viewer-heading-copy{gap:12px}.viewer-counter{font-size:12px}.viewer-collection{letter-spacing:1.2px;font-size:8px}.viewer-heading h2{font-size:11px;line-height:1.6}.viewer-close{width:36px;height:36px;font-size:16px}.viewer-caption{font-size:11px}.viewer-controls{border-radius:15px;gap:13px;padding:2px 12px}.viewer-controls button,.viewer-controls a{font-size:10px}.viewer-controls button>span{display:none}.viewer-thumbnails{margin-bottom:9px}.viewer-thumbnails button{flex-basis:55px}.viewer-thumbnails img{height:32px}}@media (prefers-reduced-motion:reduce){.viewer-atmosphere>span{animation:none}.viewer-close,.viewer-controls button,.viewer-controls a,.viewer-thumbnails button{transition:none}.viewer-close:hover{transform:none}}.seasonal-image-viewer .viewer-caption{text-align:center;width:100%;max-width:none;color:var(--viewer-text);opacity:1;text-shadow:0 1px 6px #00000050;margin:0 auto 10px;font-size:15px;font-weight:500;line-height:1.7}@media (width<=700px){.seasonal-image-viewer .viewer-caption{font-size:13px}}html{scrollbar-gutter:stable}.image-viewer-open .portfolio{filter:blur(9px)}body:has(.portfolio.motion-paused) .viewer-atmosphere>span{animation-play-state:paused}.gallery-cover{text-align:left;width:100%;font:inherit;border:0}.gallery-count{background:var(--paper);color:var(--accent);border:1px solid var(--line);letter-spacing:.8px;border-radius:3px;padding:6px 9px;font-size:9px;position:absolute;top:12px;left:12px}.gallery-title{text-align:left;font:inherit;letter-spacing:inherit;background:0 0;padding:0}.gallery-title:hover{color:var(--accent)}.gallery-open{color:var(--accent);white-space:nowrap;background:0 0;gap:10px;padding:8px 0;font-size:11px;display:flex}.gallery-open:hover{text-underline-offset:5px;text-decoration:underline}.clinic-gallery-card .project-card-footer{flex-wrap:wrap}.project-gallery-dialog{border:1px solid var(--line);background:var(--paper);width:min(1120px,94vw);max-width:94vw;max-height:92svh;color:var(--ink);border-radius:12px;padding:28px;overflow:auto;box-shadow:0 30px 80px #152c3a30}.project-gallery-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#18292ed0}.gallery-dialog-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.gallery-dialog-header h2{margin-top:8px;font-size:30px}.gallery-close{background:var(--surface);border:1px solid var(--line);border-radius:50%;align-self:flex-start;width:38px;height:38px;font-size:16px}.gallery-stage{margin:0}.gallery-stage>img{object-fit:contain;background:var(--surface);border:1px solid var(--line);border-radius:5px;width:100%;height:min(55svh,610px)}.gallery-stage figcaption{flex-direction:column;gap:7px;padding:16px 0 8px;display:flex}.gallery-stage strong{font:500 21px Playfair Display,serif}.gallery-stage figcaption>span{color:var(--muted);font-size:12px;line-height:1.8}.gallery-navigation{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:14px 0;display:flex}.gallery-navigation button{background:var(--surface);border:1px solid var(--line);border-radius:4px;gap:12px;padding:10px 14px;font-size:12px;display:flex}.gallery-navigation>span{letter-spacing:2px;color:var(--accent);font-size:11px}.gallery-thumbnails{scrollbar-width:thin;gap:10px;padding:18px 2px 12px;display:flex;overflow-x:auto}.gallery-thumbnails button{background:var(--surface);border:1px solid var(--line);border-radius:4px;flex:0 0 96px;padding:4px;position:relative}.gallery-thumbnails button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.gallery-thumbnails img{object-fit:cover;object-position:top;width:100%;height:58px}.gallery-thumbnails span{background:var(--paper);padding:3px 4px;font-size:8px;position:absolute;bottom:4px;right:4px}.gallery-live-link{margin-top:10px;font-size:12px}.gallery-close:hover,.gallery-navigation button:hover{color:var(--accent);border-color:var(--accent)}@media (width<=700px){.project-gallery-dialog{max-height:94svh;padding:18px}.gallery-dialog-header h2{font-size:25px}.gallery-stage>img{object-fit:contain;height:auto;max-height:52svh}.gallery-stage strong{font-size:20px}.gallery-stage figcaption>span{font-size:11px}.gallery-thumbnails button{flex-basis:80px}.gallery-thumbnails img{height:50px}.gallery-close{width:34px;height:34px}.gallery-open{font-size:10px}}.archive-caption{border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:1.6px;justify-content:space-between;gap:20px;margin-top:35px;padding-bottom:17px;font-size:9px;display:flex}.archive-caption>span:last-child{letter-spacing:0;color:var(--accent);font-family:Playfair Display,serif;font-size:12px;font-style:italic}.certificate-archive .certificate-grid{gap:40px 26px;margin-top:22px;padding:22px 12px 0}.certificate-archive .credential-card{--folder-base:#d6c0a3;--folder-front:#e3cfb5;--folder-tab:#d1b99a;--shelf:#c9b598;min-width:0}.certificate-archive .credential-card:nth-child(2){--folder-base:#bec8b4;--folder-front:#d1d8c6;--folder-tab:#b7c1ad}.certificate-archive .credential-card:nth-child(3){--folder-base:#ceb6ab;--folder-front:#e0c9bd;--folder-tab:#c5ab9f}.certificate-archive .credential-card:nth-child(4){--folder-base:#bbc9cb;--folder-front:#d0dfe0;--folder-tab:#b2c3c6}[data-season=winter] .certificate-archive .credential-card{--folder-base:#b4c6d4;--folder-front:#d0dfe8;--folder-tab:#aebfce;--shelf:#bdcbd3}[data-season=winter] .certificate-archive .credential-card:nth-child(2){--folder-base:#c4c4d4;--folder-front:#dddce8;--folder-tab:#bcbccd}[data-season=winter] .certificate-archive .credential-card:nth-child(3){--folder-base:#c3ccbf;--folder-front:#dae0d6;--folder-tab:#b9c3b5}[data-season=winter] .certificate-archive .credential-card:nth-child(4){--folder-base:#cfc7ba;--folder-front:#e5ddcf;--folder-tab:#c5bcad}.certificate-archive .folder-object{aspect-ratio:1.14;text-align:left;isolation:isolate;perspective:700px;background:0 0;border:0;border-radius:0;width:100%;padding:0;transition:none;display:block;position:relative;overflow:visible;transform:none}.certificate-archive .folder-object>span{margin:0}.folder-tab{background:var(--folder-tab);width:65%;height:34px;color:var(--ink);letter-spacing:1px;white-space:nowrap;border:1px solid #263b3612;border-bottom:0;border-radius:7px 12px 0 0;padding:9px 10px;line-height:1.3;position:absolute;top:0;left:0;font-size:7px!important}.folder-back{background:var(--folder-base);border:1px solid #263b3614;border-radius:0 7px 5px 5px;position:absolute;inset:21px 0 0;box-shadow:0 8px 18px #263b3610}.folder-paper{background:var(--paper);border:1px solid #263b3610;padding:6px;transition:transform .6s cubic-bezier(.2,.7,.3,1);position:absolute;inset:26px 13px;transform:rotate(-5deg);box-shadow:0 2px 7px #263b3620}.folder-paper:before{content:"";background:var(--paper);border:1px solid var(--line);z-index:-1;position:absolute;inset:-5px 3px 4px;transform:rotate(5deg)}.certificate-archive .folder-paper img{aspect-ratio:auto;object-fit:contain;width:100%;height:100%;position:relative}.folder-front{background:linear-gradient(160deg,var(--folder-front),var(--folder-base));transform-origin:bottom;border:1px solid #263b3615;border-radius:4px 4px 5px 5px;justify-content:space-between;align-items:center;gap:10px;height:35%;padding:14px;transition:transform .5s cubic-bezier(.2,.7,.3,1);display:flex;position:absolute;inset:auto 0 0;box-shadow:0 -2px 8px #263b3607,inset 0 1px #ffffff50}.folder-file-number{letter-spacing:1.3px;opacity:.7;font-size:8px}.folder-open-label{align-items:center;gap:10px;font:italic 11px Playfair Display,serif;display:flex}.folder-open-label>span{font-family:DM Sans,sans-serif;font-size:15px;font-style:normal}.folder-shelf{background:linear-gradient(var(--shelf),color-mix(in srgb,var(--shelf) 80%,var(--ink)));border:1px solid #263b3610;border-radius:2px;height:8px;position:absolute;bottom:-12px;left:-13px;right:-13px;box-shadow:0 8px 10px #263b3612,inset 0 1px #ffffff70}.folder-shelf:after{content:"";pointer-events:none;background:linear-gradient(#263b360c,#0000);height:15px;position:absolute;top:8px;left:8px;right:8px}.certificate-archive .folder-object:hover,.certificate-archive .folder-object:focus-visible{transform:none}.folder-object:hover .folder-paper,.folder-object:focus-visible .folder-paper{transform:translateY(-18px)rotate(-2deg)}.folder-object:hover .folder-front,.folder-object:focus-visible .folder-front{transform:rotateX(-14deg)}.folder-object:focus-visible{outline-offset:7px}.certificate-archive .credential-card .credential-date{color:var(--accent);margin-top:35px;font-size:10px;line-height:1.8}.certificate-archive .credential-card h4{margin:11px 0;font-family:Playfair Display,serif;font-size:17px;font-weight:500;line-height:1.5}@media (width<=1050px){.certificate-archive .certificate-grid{gap:42px 30px}.folder-tab{font-size:8px!important}.folder-open-label{font-size:13px}.folder-front{padding:20px}}@media (width<=700px){.certificate-archive .certificate-grid{gap:35px 22px;padding:15px 5px 0}.folder-tab{letter-spacing:.5px;width:75%;height:29px;padding:8px;font-size:6px!important}.folder-back{top:19px}.folder-paper{padding:4px;inset:23px 9px 21px}.folder-front{height:35%;padding:10px}.folder-file-number{letter-spacing:.7px;font-size:6px}.folder-open-label{gap:5px;font-size:9px}.folder-open-label>span{font-size:12px}.folder-shelf{height:6px;bottom:-10px;left:-11px;right:-11px}.certificate-archive .credential-card h4{font-size:15px}.certificate-archive .credential-card .credential-date{margin-top:29px;font-size:9px}.certificate-archive .credential-card>p:last-child{font-size:10px}.archive-caption{letter-spacing:1px;font-size:8px}.archive-caption>span:last-child{font-size:10px}}@media (width<=370px){.certificate-archive .certificate-grid{grid-template-columns:1fr;max-width:270px;margin-inline:auto}.folder-tab{font-size:8px!important}.folder-open-label{font-size:12px}}@media (prefers-reduced-motion:reduce){.folder-paper,.folder-front{transition:none}.folder-object:hover .folder-paper,.folder-object:focus-visible .folder-paper{transform:rotate(-5deg)}.folder-object:hover .folder-front,.folder-object:focus-visible .folder-front{transform:none}}.certificate-archive>div:first-child h3{font-size:30px;line-height:1.4}.certificate-archive>div:first-child>p{font-size:16px;line-height:1.8}.certificate-archive .archive-caption{font-size:12px}.certificate-archive .archive-caption>span:last-child{font-size:17px}.archive-browse{justify-content:space-between;align-items:center;gap:20px;margin-top:24px;margin-bottom:18px;display:flex}.archive-browse>p{color:var(--muted);font:italic 14px Playfair Display,serif}.certificate-archive .folder-tab{letter-spacing:.8px;width:75%;height:37px;padding:10px 11px;font-size:10px!important}.certificate-archive .folder-file-number{font-size:10px}.certificate-archive .folder-open-label{font-size:15px}.certificate-archive .folder-open-label>span{font-size:19px}.certificate-archive .folder-front{flex-wrap:wrap;gap:5px;padding:16px}.certificate-archive .folder-paper,.certificate-archive .folder-front{transition:transform .65s cubic-bezier(.16,.75,.25,1),box-shadow .65s}.certificate-archive .folder-object:hover .folder-front,.certificate-archive .folder-object:focus-visible .folder-front{transform:rotateX(-23deg);box-shadow:0 -3px 12px #263b3610,inset 0 1px #ffffff80}.certificate-archive .folder-object:active .folder-paper{transform:translateY(-20px)rotate(0)}.certificate-archive .credential-card .credential-date{font-size:13px;line-height:1.85}.certificate-archive .credential-card h4{margin-top:13px;font-size:22px;line-height:1.45}.certificate-archive .credential-card>p:last-child{font-size:14px;line-height:1.85}.archive-title-button{font:inherit;color:inherit;text-align:left;background:0 0;padding:0}.archive-title-button:hover{color:var(--accent)}.archive-viewer{width:min(1060px,94vw);max-width:94vw;max-height:92svh;padding:28px;overflow:auto}.archive-viewer-header{justify-content:space-between;align-items:start;gap:25px;margin-bottom:23px;display:flex}.archive-viewer-header h2{max-width:780px;margin-top:8px;font-size:28px;line-height:1.35}.archive-viewer-header>div>p:last-child{color:var(--muted);margin-top:12px;font-size:13px;line-height:1.8}.archive-viewer-close{border:1px solid var(--line);background:var(--surface);border-radius:50%;flex-shrink:0;width:40px;height:40px;font-size:17px}.archive-image-stage{background:var(--surface);border:1px solid var(--line);border-radius:5px;max-height:60svh;overflow:auto}.archive-image-stage img{object-fit:contain;width:100%;max-height:58svh;display:block}.archive-image-stage.is-zoomed img{width:160%;max-width:none;max-height:none}.archive-viewer-tools{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.archive-viewer-tools button{border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:11px 15px;font-size:13px}.archive-viewer-tools button:hover,.archive-viewer-close:hover{color:var(--accent);border-color:var(--accent)}.archive-original{margin-top:18px;font-size:13px}@media (width<=1050px){.certificate-archive .folder-tab{font-size:11px!important}.certificate-archive .folder-open-label{font-size:17px}}@media (width<=700px){.certificate-archive>div:first-child h3{font-size:26px}.certificate-archive>div:first-child>p{font-size:14px}.certificate-archive .archive-caption{gap:10px;font-size:10px}.certificate-archive .archive-caption>span:last-child{font-size:14px}.archive-browse{flex-direction:column;align-items:start;gap:14px;margin-bottom:25px}.archive-browse>p{font-size:13px}.certificate-archive .folder-tab{letter-spacing:.3px;width:86%;height:31px;padding:9px 8px;font-size:8px!important}.certificate-archive .folder-file-number{font-size:8px}.certificate-archive .folder-open-label{font-size:12px}.certificate-archive .folder-front{gap:3px;padding:10px}.certificate-archive .folder-open-label>span{font-size:14px}.certificate-archive .credential-card h4{font-size:19px}.certificate-archive .credential-card .credential-date{font-size:11px}.certificate-archive .credential-card>p:last-child{font-size:12px}.archive-viewer{padding:18px}.archive-viewer-header{gap:15px}.archive-viewer-header h2{font-size:23px}.archive-viewer-header>div>p:last-child{font-size:12px}.archive-viewer-tools{gap:7px}.archive-viewer-tools button{padding:10px;font-size:11px}.archive-viewer-close{width:34px;height:34px}.archive-original{font-size:12px}}@media (prefers-reduced-motion:reduce){.certificate-archive .folder-paper,.certificate-archive .folder-front{transition:none}.certificate-archive .folder-object:hover .folder-paper,.certificate-archive .folder-object:focus-visible .folder-paper,.certificate-archive .folder-object:active .folder-paper{transform:rotate(-5deg)}.certificate-archive .folder-object:hover .folder-front,.certificate-archive .folder-object:focus-visible .folder-front{transform:none}}.certificate-archive .folder-shelf{display:none}.certificate-archive .certificate-grid{row-gap:48px;padding-top:38px}.certificate-archive .folder-back{box-shadow:0 15px 25px -15px #263b3640}.certificate-archive .credential-card .credential-date{margin-top:26px}.certificate-archive .folder-paper{transition:transform .7s cubic-bezier(.16,.75,.25,1),opacity .4s,box-shadow .7s;box-shadow:0 5px 12px #263b3615}.certificate-archive .folder-object:hover .folder-paper,.certificate-archive .folder-object:focus-visible .folder-paper{transform:translate(3px,-40px)rotate(2deg);box-shadow:0 14px 25px #263b3620}.certificate-archive .folder-object:hover .folder-front,.certificate-archive .folder-object:focus-visible .folder-front{transform:rotateX(-28deg)}.certificate-archive .folder-is-open .folder-paper{opacity:.15;transform:translateY(-42px)rotate(1deg)}.certificate-archive .folder-is-open .folder-front{transform:rotateX(-28deg)}.certificate-dialog.frameless-archive{width:100vw;max-width:100vw;height:100svh;max-height:100svh;box-shadow:none;color:#f8f5ee;background:0 0;border:0;border-radius:0;outline:none;margin:0;padding:20px 32px;position:fixed;inset:0;overflow:hidden}.frameless-archive[open]{grid-template-rows:auto minmax(0,1fr) auto;gap:16px;display:grid}.frameless-archive::backdrop{background:color-mix(in srgb,var(--ink) 86%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.paper-viewer-heading{justify-content:space-between;align-items:center;gap:24px;width:min(1200px,100%);margin-inline:auto;display:flex}.paper-viewer-heading>div{align-items:center;gap:22px;display:flex}.paper-counter{white-space:nowrap;opacity:.65;letter-spacing:2px;font:italic 14px Playfair Display,serif}.paper-viewer-heading h2{letter-spacing:.2px;opacity:.85;max-width:750px;margin:0;font:400 13px/1.6 DM Sans,sans-serif}.paper-viewer-heading>button{color:inherit;background:0 0;border:1px solid #ffffff30;border-radius:50%;flex-shrink:0;width:44px;height:44px;font-size:20px}.paper-viewer-stage{justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative;overflow:visible}.paper-viewer-stage img{object-fit:contain;filter:drop-shadow(0 18px 32px #00000025);transform-origin:0 0;border:0;border-radius:0;width:auto;max-width:100%;height:auto;max-height:100%;margin:0;position:relative}.paper-viewer-stage.is-zoomed{overscroll-behavior:contain;display:block;overflow:auto}.paper-viewer-stage.is-zoomed img{object-fit:initial;width:150%;max-width:none;max-height:none;margin:0 auto}.paper-viewer-controls{z-index:1;justify-content:center;align-items:center;gap:28px;padding:2px 0 5px;display:flex;position:relative}.paper-viewer-controls button,.paper-viewer-controls a{color:inherit;opacity:.75;background:0 0;border:0;border-radius:0;align-items:center;gap:9px;min-height:40px;padding:8px 4px;font:12px DM Sans,sans-serif;text-decoration:none;transition:opacity .25s;display:inline-flex}.paper-viewer-controls button:hover,.paper-viewer-controls a:hover,.paper-viewer-heading>button:hover{opacity:1;background:#ffffff0a}.frameless-archive :focus-visible{outline-color:#f8f5ee}@media (width<=700px){.certificate-archive .certificate-grid{padding-top:25px}.certificate-dialog.frameless-archive{gap:14px;padding:14px 14px 8px}.paper-viewer-heading>div{display:block}.paper-counter{font-size:11px}.paper-viewer-heading h2{margin-top:7px;font-size:11px}.paper-viewer-heading{gap:15px}.paper-viewer-heading>button{width:38px;height:38px;font-size:17px}.paper-viewer-controls{justify-content:space-between;gap:8px}.paper-viewer-controls button,.paper-viewer-controls a{font-size:11px}.paper-viewer-controls button>span{display:none}.certificate-archive .folder-object:hover .folder-paper{transform:translate(2px,-25px)rotate(2deg)}}@media (prefers-reduced-motion:reduce){.certificate-archive .folder-paper,.certificate-archive .folder-front{transition:none}.certificate-archive .folder-object:hover .folder-paper,.certificate-archive .folder-object:focus-visible .folder-paper{transform:rotate(-5deg)}.certificate-archive .folder-object:hover .folder-front,.certificate-archive .folder-object:focus-visible .folder-front{transform:none}}.certificate-archive .folder-tab{letter-spacing:0;border-radius:7px 11px 0 0;align-items:flex-start;width:70%;height:34px;padding:4px 15px;display:flex}.folder-label{letter-spacing:-.15px;color:var(--ink);white-space:nowrap;font:italic 500 14px/1.35 Playfair Display,serif;display:block}.certificate-archive .folder-back{top:25px}.certificate-archive .folder-paper{top:38px}@media (width<=1050px){.folder-label{font-size:13px}}@media (width<=700px){.certificate-archive .folder-tab{width:86%;height:31px;padding:3px 10px}.folder-label{letter-spacing:-.1px;font-size:12px}.certificate-archive .folder-back{top:23px}.certificate-archive .folder-paper{top:34px}}.filter-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:26px;width:fit-content;max-width:100%;display:flex}.filter-tabs button{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:0;padding:12px 2px 15px;font-size:12px;transition:color .25s;position:relative}.filter-tabs button:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .25s;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.filter-tabs button[aria-pressed=true]{color:var(--accent)}.filter-tabs button[aria-pressed=true]:after{transform:scaleX(1)}.filter-tabs button:hover{color:var(--accent)}.filter-tabs button:focus-visible{outline-offset:4px;border-radius:2px}.project-filter-tabs{margin:30px 0 38px}@media (width<=700px){.filter-tabs{gap:20px}.filter-tabs button{padding:11px 1px 14px;font-size:11px}}.portfolio.motion-paused .filter-tabs button,.portfolio.motion-paused .filter-tabs button:after{transition:none}@media (prefers-reduced-motion:reduce){.filter-tabs button,.filter-tabs button:after{transition:none}}.page-width{width:min(1180px,100% - 100px);margin-inline:auto}.nav-inner{justify-content:space-between;align-items:center;gap:25px;height:100%;display:flex}.wordmark{letter-spacing:-3px;align-items:center;font:italic 600 37px Playfair Display,serif;display:flex}.wordmark>span{color:var(--accent);margin-left:5px;font:20px Georgia}.wordmark small{letter-spacing:1.8px;max-width:90px;margin-left:20px;font:600 9px/1.6 DM Sans,sans-serif}.nav-links{gap:31px;font-size:12px;display:flex}.nav-links a{padding:10px 0;position:relative}.nav-links a:after{content:"";background:var(--accent);width:0;height:1px;transition:width .25s;position:absolute;bottom:2px;left:0}.nav-links a:hover:after{width:100%}.nav-controls{align-items:center;gap:15px;display:flex}.season-switch{border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 65%,transparent);border-radius:30px;padding:4px;display:flex}.season-switch button{background:0 0;border-radius:20px;padding:7px 11px;font-size:11px;transition:background .3s}.season-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.menu-toggle{background:0 0;font-size:22px;display:none}.hero{isolation:isolate;height:min(950px,100svh);min-height:810px;position:relative;overflow:hidden}.seasonal-scene{z-index:-1;position:absolute;inset:0;overflow:hidden}.landscape{width:100%;height:100%;position:absolute;inset:0}.scene-wash{background:linear-gradient(90deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 94%,transparent) 20%,transparent 75%),linear-gradient(0deg,var(--paper),transparent 22%);position:absolute;inset:0}.hero-content{padding-top:215px;position:relative}.eyebrow{letter-spacing:2.2px;color:var(--accent);font-size:10px;font-weight:600;line-height:1.8}.eyebrow>span{opacity:.65;margin-right:13px}.hello{margin:31px 0 15px;font-size:15px}.hero h1{letter-spacing:-2.5px;max-width:720px;font:500 clamp(48px,5.2vw,76px)/1.15 Playfair Display,serif}.hero h1 em,h2 em{color:var(--accent);font-weight:500}.hero-description{max-width:390px;color:var(--muted);margin-top:25px;font-size:14px;line-height:1.95}.hero-actions{align-items:center;gap:30px;margin-top:30px;display:flex}.button{border-radius:4px;justify-content:center;align-items:center;gap:35px;padding:16px 23px;font-size:12px;transition:transform .25s,box-shadow .25s;display:inline-flex}.primary{background:var(--ink);color:var(--paper)}.button:hover{transform:translateY(-3px);box-shadow:0 8px 22px #263f3622}.button span{font-size:19px}.text-link{border-bottom:1px solid var(--line);align-items:center;gap:20px;padding:8px 0;font-size:12px;display:inline-flex}.text-link span{transition:transform .25s}.text-link:hover span{transform:translate(3px,-2px)}.hero-note{color:var(--muted);align-items:center;gap:9px;margin-top:32px;font-size:10px;display:flex}.status-dot{background:#839b7e;border-radius:100%;width:6px;height:6px}.hero-bottom{justify-content:space-between;align-items:end;display:flex;position:absolute;bottom:32px;left:0;right:0}.hero-bottom>a{letter-spacing:2px;font-size:8px}.hero-bottom>a span{margin-left:20px;font-size:18px}.scene-caption{text-align:right;letter-spacing:2px;margin-left:auto;font-size:9px}.scene-caption span{letter-spacing:0;margin-top:8px;font:italic 12px Playfair Display,serif;display:block}.motion-control{border:1px solid var(--line);background:0 0;border-radius:20px;margin-left:35px;padding:8px;font-size:9px}.scene-kanji{opacity:.23;writing-mode:vertical-rl;color:var(--tree-dark);font:70px Georgia;position:absolute;top:40%;right:7%}.particles{pointer-events:none;position:absolute;inset:0}.particles>span{left:var(--left);width:var(--size);height:var(--size);animation:fall var(--duration) var(--delay) linear infinite;position:absolute;top:-10%}.falling-leaf{background:var(--leaf-color);opacity:.55;border-radius:0 80%}.snowflake{opacity:.8;background:#fff;border-radius:50%;box-shadow:0 0 7px #fff7}.chapter-strip{border-block:1px solid var(--line);background:var(--surface);letter-spacing:2px;justify-content:center;align-items:center;gap:45px;padding:23px 30px;font-size:9px;display:flex}.chapter-strip i{color:var(--accent);font-size:17px;font-style:normal}.section{padding-block:110px}.about-section{grid-template-columns:1fr 1.1fr;align-items:center;gap:120px;display:grid}.portrait-composition{padding:15px 30px 25px 5px;position:relative}.portrait-frame{background:var(--accent-soft);border:1px solid var(--line);max-width:350px;padding:18px 18px 0;transform:rotate(-3deg);box-shadow:0 12px 40px #31453b0b}.portrait-frame img{object-fit:cover;object-position:center 60%;background:#e0d9c8;width:100%;height:350px}.portrait-label{letter-spacing:2px;text-align:center;padding:20px 0;font-size:8px;display:block}.portrait-stamp{background:var(--paper);border:1px solid var(--line);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:130px;height:130px;font-size:13px;display:flex;position:absolute;bottom:35px;right:0;transform:rotate(10deg)}.portrait-stamp em{color:var(--accent);font:italic 24px Playfair Display,serif}.portrait-stamp>span{margin-top:8px;font-size:24px}.side-note{color:var(--muted);font:italic 12px Playfair Display,serif;position:absolute;bottom:-10px;left:55px}h2{letter-spacing:-1.2px;margin-top:16px;font:500 clamp(32px,3.3vw,46px)/1.24 Playfair Display,serif}.about-copy>p{color:var(--muted);margin-top:20px;font-size:13px;line-height:1.95}.about-tags{flex-wrap:wrap;gap:15px;margin:25px 0;font-size:10px;display:flex}.about-tags span{background:var(--surface);border-radius:3px;padding:9px 10px}.section-top{justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px;display:flex}.section-top>p{color:var(--muted);font-size:12px;line-height:1.9}.projects-section{background:var(--surface);border-block:1px solid var(--line)}.filters{gap:10px;margin:36px 0;display:flex}.filters button{border:1px solid var(--line);background:0 0;border-radius:30px;padding:9px 19px;font-size:11px;transition:background .2s}.filters .active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filters button span{opacity:.6;margin-left:8px;font-size:8px}.project-grid{grid-template-columns:1fr 1fr;gap:55px 35px;display:grid}.project-image{aspect-ratio:1.58;background:#dfd6c6;border-radius:6px;padding:32px;display:block;position:relative;overflow:hidden}.blue .project-image{background:#c7d7df}.honey .project-image{background:#e6d6ab}.sage .project-image{background:#bcc6bb}.rose .project-image{background:#ddc4bd}.project-image :is(img,video){object-fit:cover;object-position:top;border-radius:3px;width:100%;height:100%;transition:transform .65s cubic-bezier(.2,.7,.3,1);box-shadow:0 12px 25px #1b2b3620}.project-image:hover :is(img,video){transform:scale(1.045)translateY(-3px)}.project-open{background:var(--paper);border-radius:50%;place-items:center;width:32px;height:32px;font-size:20px;display:grid;position:absolute;top:14px;right:14px}.project-number{letter-spacing:2px;opacity:.7;font-size:9px;position:absolute;bottom:11px;left:14px}.project-meta{letter-spacing:1.5px;color:var(--accent);justify-content:space-between;margin-top:23px;font-size:8px;display:flex}.project-meta>span:last-child{font-size:18px}.project-card h3{letter-spacing:-.5px;margin:5px 0 12px;font:500 25px Playfair Display,serif}.project-card p{color:var(--muted);max-width:440px;font-size:12px;line-height:1.85}.tool-tags{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.tool-tags>span{border:1px solid var(--line);color:var(--muted);border-radius:3px;padding:6px 10px;font-size:9px}.all-work{margin-top:45px}.skills-grid{border:1px solid var(--line);border-radius:5px;grid-template-columns:repeat(4,1fr);margin-top:45px;display:grid}.skill-card{border-right:1px solid var(--line);padding:30px 24px;position:relative}.skill-card:last-child{border:0}.skill-symbol{color:var(--accent);font-size:34px}.small-index{color:var(--muted);font-size:9px;position:absolute;top:35px;right:25px}.skill-card h3{margin-top:28px;font:500 21px Playfair Display,serif}.skill-card p{color:var(--muted);margin-top:12px;font-size:11px;line-height:1.9}.skill-card .tool-tags>span{padding:5px 7px;font-size:8px}.certificates{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:center;gap:50px;margin-top:55px;padding-top:40px;display:grid}.certificates h3{margin:10px 0;font:500 24px Playfair Display,serif}.certificates p{color:var(--muted);font-size:11px;line-height:1.8}.certificate-thumbs{gap:14px;display:flex}.certificate-thumbs button{background:var(--surface);border:1px solid var(--line);width:33.333%;padding:7px;transition:transform .25s;transform:rotate(-3deg)}.certificate-thumbs button:nth-child(2){transform:rotate(3deg)}.certificate-thumbs button:hover{transform:translateY(-7px)rotate(0)}.certificate-thumbs img{aspect-ratio:1.4;object-fit:cover;width:100%}.certificate-thumbs span{margin-top:6px;font-size:8px;display:block}.certificate-dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;max-width:min(900px,90vw);max-height:90svh;padding:35px}.certificate-dialog::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#1b2b36b3}.certificate-dialog img{object-fit:contain;max-height:65svh;margin:auto}.certificate-dialog p{margin-top:15px}.dialog-close{background:var(--paper);padding:5px 10px;position:absolute;top:7px;right:7px}.dialog-navigation{justify-content:space-between;margin-top:15px;display:flex}.dialog-navigation button{background:var(--surface);padding:10px;font-size:12px}.contact-section{background:var(--surface);border-block:1px solid var(--line);padding:90px 0;position:relative;overflow:hidden}.contact-inner{text-align:center;position:relative}.contact-inner h2{margin-top:22px;font-size:clamp(40px,4.8vw,65px)}.contact-inner>p:not(.eyebrow){color:var(--muted);margin:23px 0 27px;font-size:12px;line-height:1.9}.contact-orbit{color:var(--accent);opacity:.07;font:400px Georgia;animation:80s linear infinite orbit;position:absolute;top:-20px;right:6%}.email-row{color:var(--muted);justify-content:center;align-items:center;gap:15px;margin-top:20px;font-size:11px;display:flex}.email-row button{border-left:1px solid var(--line);background:0 0;padding-left:15px;font-size:9px}.social-links{justify-content:center;gap:30px;margin-top:35px;font-size:10px;display:flex}.social-links a:hover{color:var(--accent)}.footer{justify-content:space-between;align-items:center;gap:30px;padding-block:30px;display:flex}.footer p{color:var(--muted);text-align:center;font-size:9px;line-height:1.9}.footer p span{font-size:8px;display:block}.motion-paused *,.motion-paused :before,.motion-paused :after{animation-play-state:paused!important}.portfolio{background:var(--paper);transition:background .5s,color .5s;overflow:clip}@keyframes fall{0%{transform:translate(35px,-40px)rotate(0)}35%{transform:translate(-55px,38vh)rotate(125deg)}70%{transform:translate(25px,77vh)rotate(260deg)}to{transform:translate(-80px,120vh)rotate(400deg)}}@keyframes cloud-drift{0%{transform:translate(-40px)}to{transform:translate(110px)}}@keyframes orbit{to{transform:rotate(360deg)}}@media (width>=1500px){.hero-content{padding-top:250px}}@media (width<=1050px){.page-width{width:calc(100% - 64px)}.wordmark small{display:none}.about-section{gap:60px}.hero h1{font-size:60px}.hero-content{padding-top:200px}.skills-grid{grid-template-columns:1fr 1fr}.skill-card:nth-child(2){border-right:0}.skill-card:nth-child(-n+2){border-bottom:1px solid var(--line)}.chapter-strip{gap:25px;font-size:8px}.portrait-frame img{height:300px}.scene-wash{background:linear-gradient(90deg,var(--paper),color-mix(in srgb,var(--paper) 80%,transparent) 25%,transparent 100%),linear-gradient(0deg,var(--paper),transparent 20%)}}@media (width<=700px){.page-width{width:calc(100% - 40px)}.wordmark{font-size:32px}.nav-inner,.nav-controls{gap:12px}.season-switch button{padding:6px 9px;font-size:12px}.season-switch span{display:none}.menu-toggle{display:block}.nav-links{background:var(--paper);border-bottom:1px solid var(--line);padding:20px;display:none;position:absolute;top:73px;left:0;right:0;box-shadow:0 15px 20px #28372a0c}.nav-links.open{justify-content:space-around;gap:10px;display:flex}.hero{height:95svh;min-height:760px;max-height:900px}.hero-content{padding-top:160px}.hero h1{letter-spacing:-1.8px;font-size:clamp(42px,8.3vw,58px)}.hero .eyebrow{letter-spacing:1.7px;font-size:8px}.hello{margin-top:25px;font-size:12px}.hero-description{max-width:300px;font-size:12px}.hero-actions{flex-direction:column;align-items:flex-start;gap:22px;margin-top:25px}.hero-actions .text-link{font-size:11px}.button{padding:13px 20px}.hero-note{margin-top:25px;font-size:9px}.landscape{opacity:.75;width:180%;left:-50%}.scene-wash{background:linear-gradient(90deg,color-mix(in srgb,var(--paper) 92%,transparent),color-mix(in srgb,var(--paper) 55%,transparent) 55%,transparent),linear-gradient(0deg,var(--paper),transparent 30%)}.scene-caption{display:none}.hero-bottom{align-items:center;bottom:24px}.hero-bottom>a{letter-spacing:1.2px;font-size:7px}.motion-control{margin-left:0;font-size:8px}.scene-kanji{font-size:55px;top:59%;right:8%}.chapter-strip{letter-spacing:1.4px;flex-wrap:wrap;gap:15px;padding:18px 15px;font-size:7px}.chapter-strip>span:last-child,.chapter-strip>i:nth-last-child(2){display:none}.chapter-strip i{font-size:11px}.section{padding-block:70px}.about-section{grid-template-columns:1fr;gap:50px}.portrait-composition{width:90%;max-width:360px;margin-inline:auto}.portrait-frame img{height:300px}.portrait-stamp{width:110px;height:110px;right:-8px}.about-copy>p{font-size:12px}.section-top{display:block}.section-top>p{margin-top:20px;font-size:11px}.eyebrow{letter-spacing:1.8px;font-size:8px}h2{font-size:34px}.filters{flex-wrap:wrap;gap:7px;margin:28px 0}.filters button{padding:8px 15px;font-size:10px}.project-grid{grid-template-columns:1fr;gap:40px}.project-image{padding:25px}.project-card h3{font-size:24px}.project-card p{font-size:11px}.skills-grid{margin-top:30px}.skill-card{padding:24px 17px}.skill-card h3{margin-top:20px;font-size:19px}.skill-card p{font-size:10px}.small-index{top:30px;right:15px}.skill-symbol{font-size:29px}.certificates{grid-template-columns:1fr;gap:25px;margin-top:35px}.certificates h3{font-size:22px}.certificate-thumbs{max-width:450px}.contact-section{padding:70px 0}.contact-inner h2{font-size:40px}.contact-inner>p:not(.eyebrow){font-size:11px}.email-row{gap:10px;font-size:10px}.footer{flex-wrap:wrap;gap:15px}.footer p{border-top:1px solid var(--line);order:3;width:100%;padding-top:15px}.footer .wordmark{font-size:28px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portfolio:not(.motion-enabled) *,.portfolio:not(.motion-enabled) :before,.portfolio:not(.motion-enabled) :after{transition:none!important;animation:none!important}}.clouds{animation:10s ease-in-out infinite alternate cloud-drift}.water-ripples{stroke-width:2px;animation:4s ease-in-out infinite alternate water-shimmer}@keyframes water-shimmer{0%{opacity:.35;transform:translate(-18px)}to{opacity:.85;transform:translate(24px)}}.falling-leaf{opacity:.82;box-shadow:0 2px 4px #61402120}.snowflake{opacity:.95;background:#fff;border:1px solid #b7cbd8;box-shadow:0 0 9px #fff,0 1px 4px #48627e40}.nav-links{font-size:14px}.season-switch button{font-size:13px}.hello{font-size:18px}.hero-description{max-width:455px;font-size:17px;line-height:1.8}.button,.text-link{font-size:14px}.hero-note,.eyebrow{font-size:12px}.hero-bottom>a{font-size:10px}.scene-caption{font-size:11px}.scene-caption span{font-size:15px}.motion-control{background:color-mix(in srgb,var(--paper) 80%,transparent);padding:10px 14px;font-size:12px}.about-copy>p{font-size:16px;line-height:1.85}.about-tags{font-size:12px}.section-top>p{font-size:15px}.filters button{font-size:14px}.filters button span,.project-meta{font-size:11px}.project-card h3{font-size:29px}.project-card p{font-size:15px;line-height:1.8}.tool-tags>span{font-size:12px}.skill-card h3{font-size:24px}.skill-card p{font-size:14px;line-height:1.8}.skill-card .tool-tags>span{font-size:11px}.certificates p{font-size:14px}.certificate-thumbs span{font-size:11px}.contact-inner>p:not(.eyebrow){font-size:15px}.email-row{flex-wrap:wrap;font-size:14px}.email-row button{font-size:12px}.social-links{font-size:13px}.footer p{font-size:12px}.footer p span{font-size:11px}.footer>a:last-child{font-size:13px}@media (width<=1050px){.chapter-strip{letter-spacing:1.2px}.skill-card{padding-inline:20px}.hero-description{max-width:425px}}@media (width<=700px){.hero{min-height:850px;max-height:none}.hero-content{padding-top:145px}.hero .eyebrow{letter-spacing:1.2px;font-size:10px}.hello{font-size:15px}.hero-description{max-width:340px;font-size:15px}.hero-note{font-size:11px}.hero-actions .text-link{font-size:14px}.hero-bottom>a{letter-spacing:1px;font-size:9px}.hero-bottom>a span{margin-left:8px}.motion-control{padding:9px 11px;font-size:11px}.eyebrow{font-size:10px}.about-copy>p{font-size:15px}.section-top>p{font-size:14px}.filters button{padding:9px 14px;font-size:12px}.project-card h3{font-size:27px}.project-card p{font-size:14px}.project-meta{font-size:10px}.tool-tags>span{font-size:11px}.skill-card{padding:24px 16px}.skill-card h3{font-size:21px}.skill-card p{font-size:13px}.skill-card .tool-tags>span{font-size:10px}.certificates p{font-size:13px}.contact-inner>p:not(.eyebrow){font-size:14px}.email-row{gap:10px;font-size:12px}.email-row button{font-size:11px}.social-links{font-size:12px}.footer p{font-size:11px}.footer p span{font-size:10px}}.experience-section{padding-bottom:100px}.experience-list{border-top:1px solid var(--line)}.experience-item{border-bottom:1px solid var(--line);grid-template-columns:200px 1fr;gap:40px;padding:30px 0;display:grid}.experience-date{color:var(--accent);font-size:13px;line-height:1.8}.experience-item h3,.education-note h3{margin:0 0 10px;font:500 25px Playfair Display,serif}.experience-item p:not(.experience-date){color:var(--muted);font-size:15px;line-height:1.8}.experience-item .experience-organization{color:var(--ink);margin-bottom:12px}.education-note{background:var(--surface);border:1px solid var(--line);border-radius:5px;margin-top:30px;padding:25px 30px}.education-note h3{margin-top:12px}.education-note>p{color:var(--muted);font-size:14px;line-height:1.8}.featured-capstone{border:1px solid var(--line);background:var(--paper);border-radius:6px;grid-template-columns:1fr 190px;gap:45px;margin-top:30px;padding:35px;display:grid}.featured-capstone h3{margin:14px 0;font:500 30px/1.3 Playfair Display,serif}.featured-capstone p:not(.eyebrow){color:var(--muted);font-size:15px;line-height:1.8}.capstone-note{border-left:1px solid var(--line);align-self:center;padding-left:30px}.capstone-note>span{color:var(--accent);margin-bottom:18px;font-size:38px;display:block}.capstone-note strong{font-size:15px;display:block}.capstone-note p{margin-top:8px}.updated-certificates{display:block}.certificate-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:30px;display:grid}.credential-card{min-width:0}.credential-preview{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:4px;width:100%;padding:10px;transition:transform .25s;display:block}.credential-preview:hover{transform:translateY(-5px)}.credential-preview img{aspect-ratio:1.42;object-fit:contain;width:100%}.credential-preview>span{margin-top:8px;font-size:11px;display:block}.credential-card .credential-date{color:var(--accent);margin-top:15px;font-size:11px}.credential-card h4{margin:8px 0;font-size:14px;font-weight:500;line-height:1.6}.credential-card>p:last-child{font-size:12px}.pdf-preview{aspect-ratio:1.22;background:var(--accent-soft);flex-direction:column;justify-content:center;align-items:center;gap:9px;display:flex}.pdf-preview>span:first-child{font-size:40px}.pdf-preview strong{font-size:13px}.dialog-navigation{align-items:center;gap:15px}.dialog-navigation>a{font-size:12px}@media (width<=1050px){.nav-links{gap:20px}.certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pdf-preview{aspect-ratio:1.33}}@media (width<=700px){.experience-section{padding-bottom:65px}.experience-item{grid-template-columns:1fr;gap:12px;padding:25px 0}.experience-item h3{font-size:23px}.experience-item p:not(.experience-date){font-size:14px}.education-note{padding:22px}.featured-capstone{grid-template-columns:1fr;gap:25px;padding:25px}.featured-capstone h3{font-size:26px}.featured-capstone p:not(.eyebrow){font-size:14px}.capstone-note{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.capstone-note>span{display:none}.certificate-grid{gap:25px 15px}.credential-card h4{font-size:13px}.credential-card .credential-date,.credential-preview>span{font-size:10px}.nav-links.open{flex-wrap:wrap;gap:6px}.nav-links a{font-size:12px}.pdf-preview{aspect-ratio:1.1}.pdf-preview strong{font-size:11px}.pdf-preview>span:first-child{font-size:26px}}@media (width<=700px){.scroll-reveal,.portrait-composition.scroll-reveal,.about-copy.scroll-reveal{transform:translateY(22px)}.scroll-reveal.scroll-visible,.scroll-reveal:focus-within{transform:none}}@media (prefers-reduced-motion:reduce){.scroll-reveal{opacity:1!important;transition:none!important;transform:none!important}}.capstone-website{color:var(--accent);overflow-wrap:anywhere;gap:12px;margin-top:16px}.capstone-website span{flex-shrink:0}.scroll-reveal{opacity:0;transition:opacity 1s ease var(--reveal-delay,0s),transform 1.3s cubic-bezier(.16,.75,.25,1) var(--reveal-delay,0s);transform:translateY(80px)scale(.96)}.portrait-composition.scroll-reveal{transform:translate(-80px,45px)rotate(-5deg)scale(.94)}.about-copy.scroll-reveal{transform:translate(75px,35px)}.featured-capstone.scroll-reveal,.contact-inner.scroll-reveal{transform:translateY(85px)scale(.92)}.project-card.scroll-reveal:nth-child(odd){transform:translate(-45px,75px)rotate(-1.5deg)scale(.96)}.project-card.scroll-reveal:nth-child(2n){transform:translate(45px,75px)rotate(1.5deg)scale(.96)}.scroll-reveal.scroll-visible,.scroll-reveal:focus-within{opacity:1;transform:translate(0,0)rotate(0)scale(1)}.project-card.scroll-visible .project-image :is(img,video){animation:1.6s cubic-bezier(.16,.75,.25,1) both scroll-image-settle}@keyframes scroll-image-settle{0%{scale:1.12}to{scale:1}}.section-top.scroll-reveal h2:after{content:"";background:var(--accent);transform-origin:0;width:70px;height:2px;margin-top:20px;transition:transform 1s cubic-bezier(.2,.7,.3,1) .35s;display:block;transform:scaleX(0)}.section-top.scroll-visible h2:after{transform:scaleX(1)}.motion-paused .scroll-reveal{opacity:1;transition:none;transform:none}@media (width<=700px){.scroll-reveal,.portrait-composition.scroll-reveal,.about-copy.scroll-reveal,.project-card.scroll-reveal:nth-child(n){transform:translateY(60px)scale(.95)}.scroll-reveal.scroll-visible,.scroll-reveal:focus-within{transform:none}}@media (prefers-reduced-motion:reduce){.scroll-reveal{opacity:1!important;transition:none!important;transform:none!important}.project-card.scroll-visible .project-image :is(img,video){animation:none}.section-top.scroll-reveal h2:after{transition:none;transform:none}}.capstone-preview{border:1px solid var(--line);background:var(--surface);border-radius:5px;grid-column:1/-1;display:block;position:relative;overflow:hidden}.capstone-preview img{width:100%;height:auto;transition:transform .8s cubic-bezier(.2,.7,.3,1)}.capstone-preview:hover img{transform:scale(1.025)}.capstone-preview>span{background:var(--ink);color:var(--paper);border-radius:3px;padding:12px 17px;font-size:13px;position:absolute;bottom:18px;right:18px}.featured-capstone.scroll-visible .capstone-preview img{animation:1.6s both scroll-image-settle}@media (width<=700px){.capstone-preview>span{text-align:center;font-size:12px;display:block;position:static}.capstone-preview{margin-bottom:0}}@media (prefers-reduced-motion:reduce){.featured-capstone.scroll-visible .capstone-preview img{animation:none}.capstone-preview img{transition:none}}.capstone-showcase{background:linear-gradient(135deg,var(--paper),color-mix(in srgb,var(--accent-soft) 25%,var(--paper)));border-radius:12px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:40px;padding:40px;position:relative;box-shadow:0 18px 45px #263a3610}.capstone-story{min-width:0}.capstone-showcase .capstone-story h3{letter-spacing:-1px;margin:20px 0;font-size:clamp(31px,3.3vw,45px);line-height:1.2}.capstone-story h3 em{color:var(--accent);font-weight:500}.capstone-showcase p.capstone-project-name{color:var(--ink);margin-bottom:20px;font-size:16px;font-weight:500;line-height:1.6}.capstone-story>p:not(.eyebrow):not(.capstone-project-name){margin-bottom:15px;font-size:14px;line-height:1.85}.capstone-role{flex-wrap:wrap;align-items:center;gap:9px;margin:24px 0 18px;font-size:11px;display:flex}.capstone-role>span:last-child{border-left:1px solid var(--line);color:var(--muted);padding-left:9px}.capstone-story .tool-tags{gap:6px}.capstone-story .tool-tags>span{font-size:10px}.capstone-showcase .capstone-website{margin-top:22px}.capstone-window-group{min-width:0}.capstone-preview-controls{justify-content:flex-end;gap:5px;margin-bottom:13px;display:flex}.capstone-preview-controls button{background:0 0;border-radius:20px;align-items:center;gap:7px;min-height:36px;padding:9px 12px;font-size:11px;display:flex}.capstone-preview-controls button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.capstone-preview-controls .status-dot{background:#a9c1a2}.capstone-browser{border:1px solid var(--line);background:var(--paper);border-radius:9px;overflow:hidden;box-shadow:0 15px 30px #253b3615}.browser-toolbar{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;height:46px;padding:0 15px;display:flex}.browser-dots{gap:5px;display:flex}.browser-dots i{background:var(--accent);opacity:.6;border-radius:50%;width:7px;height:7px;display:block}.browser-dots i:nth-child(2){opacity:.35}.browser-dots i:nth-child(3){opacity:.2}.browser-address{letter-spacing:1px;color:var(--muted);font-size:10px}.browser-toolbar>a{font-size:18px}.capstone-viewport{overscroll-behavior:contain;background:#fff;height:520px;overflow:auto}.capstone-viewport iframe{border:0;width:100%;height:100%;display:block}.capstone-viewport>img{object-fit:cover;object-position:top;width:100%;height:auto;min-height:100%}.preview-footnote{color:var(--muted);justify-content:space-between;gap:15px;margin-top:16px;font-size:10px;line-height:1.7;display:flex}.preview-footnote>span:first-child{color:var(--accent);font-family:Playfair Display,serif;font-style:italic}.capstone-showcase p.preview-fallback{color:var(--muted);margin-top:10px;font-size:10px;line-height:1.8}.preview-fallback button{font-size:inherit;color:var(--accent);text-underline-offset:3px;background:0 0;padding:0;text-decoration:underline}.preview-fallback a{text-underline-offset:3px;text-decoration:underline}@media (width<=1050px){.capstone-showcase{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:28px;padding:28px}.capstone-viewport{height:560px}.preview-footnote{flex-direction:column;gap:4px}}@media (width<=760px){.capstone-showcase{grid-template-columns:minmax(0,1fr);gap:28px;padding:25px}.capstone-showcase .capstone-story h3{font-size:36px}.capstone-preview-controls{justify-content:flex-start}.capstone-viewport{height:470px}.capstone-viewport>img{object-fit:contain;min-height:0}.preview-footnote{flex-direction:row}.capstone-story .tool-tags>span{font-size:11px}.capstone-showcase .capstone-story p{font-size:14px}}.live-preview-label{color:var(--muted);justify-content:flex-end;align-items:center;gap:8px;margin-bottom:16px;font-size:11px;display:flex}.seasonal-section{position:relative}.seasonal-section:before{content:"";background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;pointer-events:none;width:min(220px,45%);height:2px;transition:transform 1.6s cubic-bezier(.2,.7,.3,1),opacity 1.2s;position:absolute;top:0;left:50%;transform:translate(-50%)scaleX(.15)}.seasonal-section.section-arrived:before{opacity:.6;transform:translate(-50%)scaleX(1)}.portfolio .scroll-reveal{opacity:0;transition:opacity 1.2s ease var(--reveal-delay,0s),transform 1.4s cubic-bezier(.16,.75,.25,1) var(--reveal-delay,0s);transform:translateY(65px)}.portfolio .portrait-composition.scroll-reveal{transform:translate(-65px,35px)rotate(-4deg)}.portfolio .about-copy.scroll-reveal{transform:translate(60px,35px)}.portfolio .featured-capstone.scroll-reveal,.portfolio .contact-inner.scroll-reveal{transform:translateY(70px)scale(.95)}.portfolio .project-card.scroll-reveal:nth-child(odd){transform:translate(-35px,65px)}.portfolio .project-card.scroll-reveal:nth-child(2n){transform:translate(35px,65px)}.section-top.scroll-reveal h2{filter:blur(5px);transition:filter 1.1s ease var(--reveal-delay,0s)}.section-top.scroll-visible h2,.section-top:focus-within h2{filter:blur()}.portfolio .scroll-reveal.scroll-visible,.portfolio .scroll-reveal:focus-within{opacity:1;transform:none}.portfolio.motion-paused .scroll-reveal{opacity:1;transition:none;transform:none}@media (width<=700px){.portfolio .scroll-reveal,.portfolio .portrait-composition.scroll-reveal,.portfolio .about-copy.scroll-reveal,.portfolio .project-card.scroll-reveal:nth-child(n){transform:translateY(45px)}.portfolio .scroll-reveal.scroll-visible,.portfolio .scroll-reveal:focus-within{transform:none}.live-preview-label{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.portfolio .scroll-reveal{opacity:1!important;transition:none!important;transform:none!important}.section-top.scroll-reveal h2{filter:none;transition:none}.seasonal-section:before{opacity:.6;transition:none;transform:translate(-50%)}}.collection-heading{border-top:1px solid var(--line);justify-content:space-between;align-items:end;gap:25px;margin-top:75px;padding-top:40px;display:flex}.collection-heading h3{letter-spacing:-.5px;margin-top:12px;font:500 29px/1.3 Playfair Display,serif}.collection-heading>p{color:var(--muted);max-width:220px;font-size:12px;line-height:1.8}.projects-section .filters{border-bottom:1px solid var(--line);gap:26px;margin:30px 0 38px;padding-bottom:0}.projects-section .filters button{color:var(--muted);background:0 0;border:0;border-radius:0;padding:12px 3px 17px;font-size:13px;position:relative}.projects-section .filters button:after{content:"";background:var(--accent);height:2px;transition:transform .3s;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.projects-section .filters button.active{color:var(--accent);background:0 0}.projects-section .filters button.active:after{transform:scaleX(1)}.projects-section .filters button span{background:var(--accent-soft);color:var(--ink);opacity:1;border-radius:4px;margin-left:8px;padding:3px 6px}.project-grid{align-items:stretch;gap:32px}.project-card{--project-mat:#e7dfd0;background:var(--paper);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-width:0;padding:18px;display:flex;position:relative;box-shadow:0 5px 20px #293e3504}.project-card.blue{--project-mat:#d0dfe3}.project-card.honey{--project-mat:#ede0bd}.project-card.sage{--project-mat:#d3dccc}.project-card.rose{--project-mat:#ead8d0}.project-card-top{justify-content:space-between;align-items:center;gap:15px;margin:2px 2px 15px;display:flex}.project-edition{letter-spacing:1.8px;color:var(--muted);font-size:9px}.project-category{color:var(--accent);font-family:Playfair Display,serif;font-size:10px;font-style:italic}.project-card .project-image{background:var(--project-mat);aspect-ratio:1.5;isolation:isolate;border-radius:5px;padding:26px}.project-card .project-image:before{content:"";z-index:-1;pointer-events:none;border:1px solid #ffffff60;border-radius:3px;position:absolute;inset:10px}.project-card .project-image :is(img,video){object-fit:contain;object-position:center;border-radius:2px;box-shadow:0 8px 22px #2439311c}.project-card .project-image:hover :is(img,video){transform:scale(1.025)translateY(-3px)}.project-image-caption{background:var(--paper);color:var(--ink);opacity:0;border-radius:3px;align-items:center;gap:16px;padding:9px 13px;font-size:10px;transition:opacity .3s,transform .3s;display:flex;position:absolute;bottom:14px;right:14px;transform:translateY(6px);box-shadow:0 3px 12px #2439310c}.project-image:hover .project-image-caption,.project-image:focus-visible .project-image-caption{opacity:1;transform:none}.project-card-body{flex-direction:column;flex:1;padding:6px 10px 0;display:flex}.project-card .project-meta{letter-spacing:1.6px;margin-top:22px;font-size:9px;line-height:1.8}.project-card h3{margin:12px 0 15px;font-size:28px;line-height:1.25}.project-card h3 a{transition:color .25s}.project-card h3 a:hover{color:var(--accent)}.project-card-body>p{max-width:none;color:var(--muted);margin-bottom:24px;font-size:14px;line-height:1.85}.project-card-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;margin-top:auto;padding:18px 0 2px;display:flex}.project-card-footer .tool-tags{gap:6px;margin:0}.project-card-footer .tool-tags>span{background:0 0;border:0;padding:4px 0;font-size:10px}.project-card-footer .tool-tags>span:not(:last-child):after{content:"/";color:var(--line);padding-left:6px}.project-action{border:1px solid var(--line);border-radius:50%;flex-shrink:0;place-items:center;width:35px;height:35px;font-size:19px;transition:background .25s,color .25s,transform .25s;display:grid}.project-action:hover{background:var(--ink);color:var(--paper);transform:rotate(8deg)}.project-grid>.project-card:last-child:nth-child(odd){grid-column:1/-1;grid-template-columns:1.1fr 1fr;column-gap:35px;padding:22px;display:grid}.project-grid>.project-card:last-child:nth-child(odd) .project-card-top{grid-column:1/-1}.project-grid>.project-card:last-child:nth-child(odd) .project-card-body{padding:12px 15px 10px 0}.project-grid>.project-card:last-child:nth-child(odd) .project-meta{margin-top:0}:root[data-season=winter] .project-card{--project-mat:#d4dfe4}:root[data-season=winter] .project-card.blue{--project-mat:#c9dce8}:root[data-season=winter] .project-card.honey{--project-mat:#e4dfce}:root[data-season=winter] .project-card.sage{--project-mat:#cfddd9}:root[data-season=winter] .project-card.rose{--project-mat:#dfd6df}@media (hover:none){.project-image-caption{opacity:1;transform:none}}@media (width<=760px){.collection-heading{margin-top:50px;padding-top:30px;display:block}.collection-heading h3{font-size:26px}.collection-heading>p{max-width:none;margin-top:15px}.projects-section .filters{flex-wrap:wrap;gap:20px}.project-grid{grid-template-columns:1fr;gap:25px}.project-card{padding:14px}.project-card .project-image{padding:22px}.project-card-body{padding-inline:5px}.project-card h3{font-size:27px}.project-image-caption{opacity:1;padding:7px 10px;font-size:9px;transform:none}.project-grid>.project-card:last-child:nth-child(odd){grid-column:auto;gap:0;padding:14px;display:flex}.project-grid>.project-card:last-child:nth-child(odd) .project-card-body{padding:6px 5px 0}.project-grid>.project-card:last-child:nth-child(odd) .project-meta{margin-top:22px}}.clinic-reliable-preview{aspect-ratio:1.25;cursor:pointer;background:var(--surface);height:auto;display:block;position:relative;overflow:hidden}.clinic-reliable-preview>img{object-fit:cover;object-position:top;width:100%;height:100%;min-height:0;transition:transform .8s cubic-bezier(.2,.7,.3,1);display:block}.clinic-reliable-preview:hover>img,.clinic-reliable-preview:focus-visible>img{transform:scale(1.025)}.clinic-preview-invitation{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:5px;justify-content:space-between;align-items:center;gap:20px;padding:15px 18px;font-size:12px;transition:background .3s,color .3s;display:flex;position:absolute;bottom:20px;left:20px;right:20px;box-shadow:0 5px 20px #24393115}.clinic-preview-invitation>span{font-size:20px}.clinic-reliable-preview:hover .clinic-preview-invitation{background:var(--ink);color:var(--paper)}.clinic-reliable-preview:focus-visible{outline-offset:-4px}@media (width<=760px){.clinic-reliable-preview{aspect-ratio:1.2;height:auto}.clinic-preview-invitation{padding:12px;font-size:11px;bottom:12px;left:12px;right:12px}}@media (prefers-reduced-motion:reduce){.clinic-reliable-preview>img,.clinic-preview-invitation{transition:none}.clinic-reliable-preview:hover>img{transform:none}}#about{--about-content-inset:110px;scroll-margin-top:calc(0px - var(--about-content-inset))}@media (width<=700px){#about{--about-content-inset:70px}}#projects,#skills{--chapter-content-inset:110px;scroll-margin-top:calc(0px - var(--chapter-content-inset))}#project-journal{--chapter-content-inset:40px;scroll-margin-top:calc(0px - var(--chapter-content-inset))}#contact{--chapter-content-inset:90px;scroll-margin-top:calc(0px - var(--chapter-content-inset));min-height:calc(100svh - 80px)}@media (width<=700px){#projects,#skills,#contact{--chapter-content-inset:70px}#project-journal{--chapter-content-inset:30px}}.motion-enabled .portrait-frame{transform-origin:50% 70%;animation:9s ease-in-out infinite portrait-breeze}.motion-enabled .portrait-stamp{transform-origin:50%;animation:7s ease-in-out infinite curiosity-drift}.motion-enabled .portrait-stamp>span{animation:5s ease-in-out infinite curiosity-sparkle}@keyframes portrait-breeze{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-10px)rotate(-1.5deg)}}@keyframes curiosity-drift{0%,to{transform:translateY(0)rotate(10deg)}50%{transform:translateY(-13px)rotate(5deg)}}@keyframes curiosity-sparkle{0%,to{opacity:.7;transform:rotate(0)scale(1)}50%{opacity:1;transform:rotate(18deg)scale(1.1)}}@media (width<=700px){@keyframes portrait-breeze{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-6px)rotate(-1.8deg)}}@keyframes curiosity-drift{0%,to{transform:translateY(0)rotate(10deg)}50%{transform:translateY(-8px)rotate(6deg)}}}@media (prefers-reduced-motion:reduce){.portrait-frame,.portrait-stamp,.portrait-stamp>span{animation:none!important}}#contact{min-height:calc(100svh - 80px);scroll-margin-top:-35px}@media (width<=700px){#contact{min-height:calc(100svh - 70px);scroll-margin-top:-30px}}.hero h1,.hero h1 em{font-weight:600}@media (width<=700px){#experience{padding-top:32px}}.interactive-link{width:40px;height:40px;color:var(--accent);isolation:isolate;z-index:2;background:0 0;border:0;border-radius:3px;flex-shrink:0;place-items:center;transition:color .25s,background .25s;display:inline-grid;position:relative}.interactive-link:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .3s;position:absolute;bottom:5px;left:11px;right:11px;transform:scaleX(0)}.interactive-link-icons{width:17px;height:17px;transition:transform .3s;display:block;position:relative;overflow:hidden}.interactive-link-icons svg{width:17px;height:17px;transition:transform .4s cubic-bezier(.2,.7,.3,1),opacity .3s;position:absolute;inset:0}.interactive-link-icons svg:last-child{transform:translate(var(--link-enter-x,-110%),110%);opacity:0}.interactive-link:hover,.interactive-link:focus-visible{color:var(--ink);background:color-mix(in srgb,var(--accent) 5%,transparent)}.interactive-link:hover:after,.interactive-link:focus-visible:after{transform:scaleX(1)}.interactive-link:hover .interactive-link-icons,.interactive-link:focus-visible .interactive-link-icons{transform:translate(1px,-1px)}.interactive-link:hover .interactive-link-icons svg:first-child,.interactive-link:focus-visible .interactive-link-icons svg:first-child{transform:translate(var(--link-exit-x,110%),-110%);opacity:0}.interactive-link:hover .interactive-link-icons svg:last-child,.interactive-link:focus-visible .interactive-link-icons svg:last-child{opacity:1;transform:none}.interactive-link:active{background:color-mix(in srgb,var(--accent) 10%,transparent)}.interactive-link-tooltip{border:1px solid var(--line);background:var(--paper);width:max-content;max-width:230px;color:var(--muted);opacity:0;visibility:hidden;pointer-events:none;border-radius:3px;align-items:center;gap:12px;padding:7px 10px;font:10px/1.5 DM Sans,sans-serif;transition:opacity .2s .15s,transform .2s .15s,visibility .2s .15s;display:flex;position:absolute;bottom:calc(100% + 7px);right:0;transform:translateY(3px);box-shadow:0 3px 12px #24393108}.interactive-link:hover .interactive-link-tooltip,.interactive-link:focus-visible .interactive-link-tooltip{opacity:1;visibility:visible;transform:none}.browser-toolbar{z-index:3;height:48px;padding-right:8px;position:relative;overflow:visible}.browser-toolbar .interactive-link{width:36px;height:36px}.browser-toolbar .interactive-link-tooltip{top:calc(100% + 7px);bottom:auto}.project-card-footer>.interactive-link{margin-right:-5px}@media (pointer:coarse){.interactive-link,.browser-toolbar .interactive-link{width:44px;height:44px}.browser-toolbar{height:52px}}@media (hover:none){.interactive-link-tooltip{display:none}}@media (prefers-reduced-motion:reduce){.interactive-link,.interactive-link:after,.interactive-link-icons,.interactive-link-icons svg,.interactive-link-tooltip{transition:none}}.interactive-link-with-label{align-items:center;gap:14px;width:auto;min-height:44px;padding:0 2px;font-size:12px;display:inline-flex}.interactive-link-with-label:after{left:2px;right:2px}.interactive-link-label{line-height:1.5}.interactive-link-up{--link-enter-x:0%;--link-exit-x:0%}.interactive-link-up:hover .interactive-link-icons,.interactive-link-up:focus-visible .interactive-link-icons{transform:translateY(-1px)}.portfolio.motion-paused .interactive-link,.portfolio.motion-paused .interactive-link *,.portfolio.motion-paused .interactive-link:after{transition:none}.capstone-browser.mac-window{border:1px solid color-mix(in srgb,var(--ink) 13%,var(--paper));background:var(--paper);border-radius:12px;overflow:hidden;box-shadow:0 16px 40px #263b3610,0 2px 5px #263b3607}.mac-window .browser-toolbar{background:linear-gradient(color-mix(in srgb,var(--surface) 72%,var(--paper)),var(--surface));border-bottom:1px solid var(--line);grid-template-columns:62px minmax(0,1fr) 36px;align-items:center;gap:18px;height:56px;padding:0 12px 0 17px;display:grid;box-shadow:inset 0 1px #ffffff80}.mac-window .browser-dots{gap:7px}.mac-window .browser-dots i{opacity:1;background:#e68e83;border:1px solid #0000000b;width:10px;height:10px}.mac-window .browser-dots i:nth-child(2){opacity:1;background:#dfbc75}.mac-window .browser-dots i:nth-child(3){opacity:1;background:#9ab496}.mac-window .browser-address{border:1px solid color-mix(in srgb,var(--line) 65%,transparent);background:color-mix(in srgb,var(--paper) 80%,transparent);width:min(100%,290px);height:27px;color:var(--muted);letter-spacing:.5px;border-radius:6px;justify-content:center;justify-self:center;align-items:center;gap:7px;font-size:10px;display:flex;box-shadow:inset 0 1px 2px #263b3604}.mac-window .browser-toolbar .interactive-link{width:34px;height:34px}.mac-window .browser-toolbar .interactive-link-icons,.mac-window .browser-toolbar .interactive-link-icons svg{width:15px;height:15px}.mac-window .clinic-reliable-preview{aspect-ratio:auto;background:var(--paper);height:auto;display:block}.mac-window .clinic-reliable-preview>img{object-fit:contain;width:100%;height:auto;min-height:0;transition:opacity .4s;transform:none}.mac-window .clinic-reliable-preview:hover>img{opacity:.94;transform:none}.mac-window .clinic-preview-invitation{border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 95%,transparent);min-height:32px;color:var(--ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:5px;gap:14px;padding:7px 11px;font-size:10px;transition:color .25s,border-color .25s;bottom:14px;left:auto;right:14px;box-shadow:0 2px 8px #263b3609}.mac-window .clinic-preview-invitation>span{font-size:15px}.mac-window .clinic-reliable-preview:hover .clinic-preview-invitation{background:var(--paper);color:var(--accent);border-color:var(--accent)}@media (width<=700px){.mac-window .browser-toolbar{grid-template-columns:48px minmax(0,1fr) 32px;gap:9px;height:50px;padding-left:12px;padding-right:8px}.mac-window .browser-dots{gap:5px}.mac-window .browser-dots i{width:8px;height:8px}.mac-window .browser-address{height:25px;font-size:9px}.mac-window .clinic-preview-invitation{min-height:30px;padding:6px 9px;font-size:9px;bottom:10px;right:10px}.mac-window .browser-toolbar .interactive-link{width:32px;height:40px}}@media (prefers-reduced-motion:reduce){.mac-window .clinic-reliable-preview>img,.mac-window .clinic-preview-invitation{transition:none}}.mac-window .clinic-live-viewport{aspect-ratio:auto;background:#fff;height:560px;display:block;overflow:hidden}.mac-window .clinic-live-viewport iframe{background:#fff;border:0;width:100%;height:100%;display:block}.live-preview-help{color:var(--muted);justify-content:flex-end;align-items:center;gap:18px;margin-top:12px;font-size:10px;display:flex}.live-preview-help button{font-size:inherit;color:inherit;background:0 0;padding:5px 0}.live-preview-help a{padding:5px 0}.live-preview-help button:hover,.live-preview-help a:hover{color:var(--accent);text-underline-offset:4px;text-decoration:underline}@media (width<=760px){.mac-window .clinic-live-viewport{height:480px}}.toolkit-hint{color:var(--muted);align-items:center;gap:10px;margin-top:35px;font-size:12px;display:flex}.toolkit-hint>span:first-child{color:var(--accent);font-size:22px}.toolkit-hint-line{background:var(--line);width:55px;height:1px;margin-left:5px}.skills-toolkit .toolkit-tabs{border-radius:8px 8px 0 0;gap:0;margin-top:18px;overflow:clip}.toolkit-tabs .toolkit-card{text-align:left;color:var(--ink);isolation:isolate;background:0 0;border-radius:0;flex-direction:column;align-items:flex-start;min-width:0;padding:30px 24px 20px;transition:background .35s,box-shadow .35s;display:flex;position:relative}.toolkit-card:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(230px circle at var(--glow-x,50%) var(--glow-y,25%),color-mix(in srgb,var(--accent-soft) 65%,transparent),transparent);opacity:0;transition:opacity .4s;position:absolute;inset:0}.toolkit-card:hover:before{opacity:.8}.toolkit-card.toolkit-selected{background:color-mix(in srgb,var(--accent-soft) 24%,var(--paper));box-shadow:inset 0 3px var(--accent)}.toolkit-card:focus-visible{outline:2px solid var(--accent);outline-offset:-5px}.toolkit-card .skill-symbol{transform-origin:50%;transition:transform .7s cubic-bezier(.2,.7,.3,1);display:block}.toolkit-card:hover .skill-symbol,.toolkit-card:focus-visible .skill-symbol{transform:rotate(35deg)scale(1.12)}.toolkit-title{letter-spacing:-.3px;margin-top:28px;font:500 24px/1.3 Playfair Display,serif;display:block}.toolkit-description{color:var(--muted);margin-top:14px;font-size:14px;line-height:1.85;display:block}.toolkit-card .tool-tags{margin-top:22px;margin-bottom:25px}.toolkit-card .tool-tags>span{transition:background .25s,border-color .25s}.toolkit-card:hover .tool-tags>span{background:color-mix(in srgb,var(--paper) 70%,transparent)}.toolkit-card-action{border-top:1px solid var(--line);width:100%;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:17px;font-size:10px;display:flex}.toolkit-card-action>span:last-child{color:var(--accent);font-size:20px;line-height:1}.toolkit-selected .toolkit-card-action{color:var(--accent)}.toolkit-panel{background:var(--surface);border:1px solid var(--line);isolation:isolate;border-top:0;border-radius:0 0 8px 8px;padding:32px 36px;position:relative;overflow:hidden}.toolkit-panel-content{z-index:1;grid-template-columns:.85fr 1.15fr;gap:45px;animation:.5s both toolkit-unfold;display:grid;position:relative}.toolkit-panel-intro h3{letter-spacing:-.5px;max-width:340px;margin-top:12px;font:500 28px/1.3 Playfair Display,serif}.toolkit-panel-copy>p{color:var(--muted);font-size:14px;line-height:1.9}.toolkit-panel-copy .text-link{margin-top:15px;font-size:12px}.toolkit-panel-flower{color:var(--accent);opacity:.05;pointer-events:none;font-size:210px;line-height:1;position:absolute;bottom:-65px;left:27%}@keyframes toolkit-unfold{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (width<=1050px){.toolkit-tabs .toolkit-card{padding:28px 23px 20px}.toolkit-panel-content{gap:30px}.toolkit-panel-intro h3{font-size:26px}}@media (width<=700px){.toolkit-hint{font-size:11px}.toolkit-tabs .toolkit-card{padding:24px 16px 18px}.toolkit-title{margin-top:23px;font-size:21px}.toolkit-description{font-size:13px}.toolkit-card .small-index{top:28px;right:15px}.toolkit-card-action{padding-top:13px;font-size:9px}.toolkit-card .tool-tags{margin-bottom:20px}.toolkit-panel{padding:26px 23px}.toolkit-panel-content{grid-template-columns:1fr;gap:20px}.toolkit-panel-intro h3{font-size:26px}.toolkit-panel-copy>p{font-size:13px}.toolkit-panel-flower{left:auto;right:-25px}.toolkit-card.toolkit-selected{box-shadow:inset 0 3px var(--accent)}}@media (prefers-reduced-motion:reduce){.toolkit-panel-content{animation:none}.toolkit-card .skill-symbol,.toolkit-card:before,.toolkit-tabs .toolkit-card{transition:none}.toolkit-card:hover .skill-symbol{transform:none}}.chapter-navigation{z-index:35;color:var(--accent);transform-origin:100%;opacity:0;visibility:hidden;pointer-events:none;filter:blur(9px);transition:opacity .28s,translate .7s cubic-bezier(.16,.75,.25,1),filter 1s,visibility 0s .8s;position:fixed;top:50%;right:30px;transform:translateY(-50%)translate(24px,10px)}.chapter-navigation.chapter-navigation-visible{opacity:1;visibility:visible;pointer-events:auto;filter:blur();transition:opacity .28s 80ms,translate .8s cubic-bezier(.16,.75,.25,1) 80ms,filter .28s 80ms,visibility;translate:0}.chapter-navigation-list{flex-direction:column;align-items:flex-end;gap:2px;display:flex;position:relative}.chapter-navigation-list>a{min-height:39px;color:var(--muted);opacity:1;isolation:isolate;background:0 0;justify-content:flex-end;align-items:center;gap:11px;padding:6px 6px 6px 12px;transition:color .3s;display:flex;position:relative}.chapter-number{text-align:right;letter-spacing:.5px;min-width:29px;font:500 15px Playfair Display,serif;transition:scale .6s cubic-bezier(.2,.7,.3,1);display:block}.chapter-subchapter .chapter-number{font-size:12px}.chapter-label{white-space:nowrap;opacity:0;visibility:hidden;transform-origin:100%;pointer-events:none;box-shadow:none;background:0 0;border:0;padding:7px 10px;font:italic 13px Playfair Display,serif;transition:opacity .3s,transform .45s cubic-bezier(.2,.7,.3,1),scale .35s,visibility 0s .5s;position:absolute;right:calc(100% + 4px);transform:translate(13px)scale(.96)}.chapter-navigation-list>a.chapter-hint-visible .chapter-label{opacity:1;visibility:visible;transition:opacity .35s 40ms,transform .8s cubic-bezier(.16,.75,.25,1),scale .4s,visibility;transform:scale(1)}.chapter-mark{border:1px solid;border-radius:50%;width:4px;height:4px;transition:background .5s,box-shadow .6s;display:block}.chapter-navigation-list>a[aria-current=location],.chapter-navigation-list>a:hover,.chapter-navigation-list>a:focus-visible{color:var(--accent)}.chapter-navigation-list>a[aria-current=location] .chapter-mark{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent);background:currentColor}.chapter-navigation-list>a:hover .chapter-number,.chapter-navigation-list>a:focus-visible .chapter-number{scale:1.025}.chapter-ornament{opacity:.6;transform-origin:bottom;margin:0 3px 10px 0;font-size:22px;line-height:1;animation:9s ease-in-out infinite chapter-breeze}.chapter-tail{background:linear-gradient(var(--accent),transparent);opacity:.3;align-self:flex-end;width:1px;height:30px;margin:9px 8px 0 0}.chapter-menu-toggle{display:none}@keyframes chapter-wind{0%,to{transform:translate(0)rotate(0)}35%{transform:translate(-3px,-3px)rotate(-3deg)}70%{transform:translate(2px,2px)rotate(2deg)}}@keyframes chapter-breeze{0%,to{transform:rotate(-10deg)translateY(0)}50%{transform:rotate(12deg)translateY(-5px)}}@media (width>=1500px){.chapter-navigation{right:48px}}@media (width<=1100px){.chapter-navigation{right:20px}.chapter-navigation-list>a{gap:7px;padding-left:3px}.chapter-number{font-size:13px}.chapter-subchapter .chapter-number{font-size:10px}.chapter-label{font-size:12px}}@media (width<=700px){.chapter-navigation{top:auto;right:14px;bottom:max(20px,env(safe-area-inset-bottom));transform-origin:100% 100%;transform:translateY(15px)}.chapter-menu-toggle{border:1px solid var(--line);background:var(--paper);width:42px;height:42px;color:var(--accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;place-items:center;margin-left:auto;font-size:22px;display:grid;box-shadow:0 4px 15px #263b3610}.chapter-menu-toggle>span{animation:9s ease-in-out infinite chapter-breeze}.chapter-navigation-list{overscroll-behavior:contain;background:var(--paper);border:1px solid var(--line);width:min(250px,100vw - 40px);min-width:0;max-height:calc(100svh - 140px);box-shadow:0 10px 32px color-mix(in srgb,var(--ink) 13%,transparent);opacity:0;visibility:hidden;pointer-events:none;border-radius:12px;padding:12px;transition:opacity .18s,transform .22s,visibility 0s .22s;position:absolute;bottom:54px;right:0;overflow-y:auto;transform:translateY(8px)}.chapter-navigation-open .chapter-navigation-list{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s,transform .22s,visibility;transform:none}.chapter-navigation-list>a{grid-template-columns:minmax(0,1fr) 36px 8px;gap:12px;width:100%;min-height:44px;padding:8px 10px;display:grid}.chapter-navigation .chapter-label{opacity:1;min-width:0;visibility:inherit;white-space:normal;pointer-events:auto;background:0 0;margin:0;padding:0;font-size:14px;line-height:1.4;transition:none;position:static;right:auto;transform:scale(1)}.chapter-number{font-size:14px}.chapter-subchapter .chapter-number{font-size:11px}.chapter-ornament,.chapter-tail{display:none}.chapter-mark{margin-left:4px}}.portfolio.motion-enabled .chapter-navigation{transition:opacity .4s,translate .8s cubic-bezier(.16,.75,.25,1),filter .28s,visibility 0s .7s}.portfolio.motion-enabled .chapter-navigation.chapter-navigation-visible{transition:opacity .4s 40ms,translate .7s cubic-bezier(.16,.75,.25,1) 40ms,filter .4s 40ms,visibility}.chapter-number{transition:scale .4s cubic-bezier(.22,.68,.22,1),color .28s;animation-duration:11s}.chapter-navigation-list>a{transition:color .28s}.chapter-label{transition:opacity .35s,transform .4s cubic-bezier(.22,.68,.22,1),scale .9s,visibility 0s .65s;transform:translate(15px)}.chapter-navigation-list>a.chapter-hint-visible .chapter-label{transition:opacity .3s 20ms,transform .45s cubic-bezier(.16,.75,.25,1),scale .35s,visibility}.chapter-mark{transition:background .4s,box-shadow .35s,border-color .28s;position:relative}.chapter-mark:after{content:"";opacity:0;border:1px solid;border-radius:50%;transition:opacity .55s,scale .45s cubic-bezier(.22,.68,.22,1);position:absolute;inset:-5px;scale:.5}.chapter-navigation-list>a[aria-current=location] .chapter-mark:after{opacity:.18;scale:1}.portfolio.motion-paused .chapter-navigation,.portfolio.motion-paused .chapter-navigation *{transition:none!important;animation:none!important}@media (width<=700px){.chapter-navigation-open .chapter-label{transform:none}}@media (prefers-reduced-motion:reduce){.portfolio:not(.motion-enabled) .chapter-navigation,.portfolio:not(.motion-enabled) .chapter-navigation *{transition:none!important;animation:none!important}.portfolio:not(.motion-enabled) .chapter-navigation{filter:none;translate:none;scale:1}}.chapter-navigation-list>a{width:64px}.chapter-navigation .chapter-number{animation:none;transform:scale(1)}@media (width<=700px){.chapter-navigation-list>a{width:100%}.chapter-navigation .chapter-navigation-list>a .chapter-label{opacity:1;visibility:inherit;transition:none;position:static;right:auto;transform:scale(1)}.chapter-navigation-list .chapter-number{text-align:right;min-width:0;scale:1}.chapter-navigation-list .chapter-mark{justify-self:center;margin:0}}.footer{flex-wrap:wrap;gap:14px 30px}.footer-companion{--pet-tone:#a46e50;--pet-fur:var(--pet-tone);--pet-edge:var(--pet-tone);--pet-pale:var(--pet-tone);--pet-toy:var(--pet-tone);pointer-events:none;flex:0 0 100%;width:100%;height:90px;margin-top:0;overflow:hidden}.footer-dog{--pet-tone:#66879a}.footer-pet-scene{width:100%;height:100%;display:block;overflow:visible}.pet-ground{stroke:var(--line);stroke-width:1px}.pet-shadow{fill:var(--ink);opacity:.07}.pet-fur{fill:var(--pet-fur);stroke:var(--pet-edge);stroke-width:1.3px;stroke-linejoin:round}.pet-belly{stroke:var(--pet-pale);stroke-width:7px;stroke-linecap:round}.pet-tail{stroke:var(--pet-fur);stroke-width:9px;stroke-linecap:round;transform-origin:-28px 84px}.pet-leg{stroke:var(--pet-edge);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;transform-origin:0 91px}.pet-leg-near-back,.pet-leg-near-front{stroke:var(--pet-fur)}.pet-leg-back{transform-origin:-22px 91px}.pet-leg-front{transform-origin:19px 91px}.pet-leg-near-back{transform-origin:-17px 93px}.pet-leg-near-front{transform-origin:23px 91px}.dog-ear{fill:var(--pet-edge);opacity:.8}.pet-muzzle{fill:var(--pet-pale)}.pet-ear-inner{fill:var(--accent-soft)}.pet-ink{fill:var(--ink)}.pet-eye,.pet-mouth,.pet-whiskers{stroke:var(--ink);stroke-width:1.2px;stroke-linecap:round}.pet-whiskers{opacity:.5;stroke-width:.8px}.pet-collar{stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.pet-tag{fill:var(--pet-pale);stroke:var(--accent);stroke-width:.7px}.toy-fill{fill:var(--pet-toy);stroke:var(--pet-edge);stroke-width:1px}.toy-thread{stroke:var(--paper);stroke-width:1px;opacity:.6}.pet-little-spark{stroke:var(--accent);stroke-width:1px;opacity:.3}.pet-journey{transform-box:view-box;animation:28s linear infinite pet-chase;transform:translate(10%)}.pet-direction{animation:28s linear infinite pet-turn}.pet-body-bob{animation:.5s ease-in-out infinite pet-step-bob}.cat-tail{animation:2s ease-in-out infinite pet-tail-wave}.pet-head{transform-origin:23px 76px;animation:3s ease-in-out infinite pet-head-curious}.toy-journey{transform-box:view-box;animation:28s linear infinite toy-chase;transform:translate(18%)}.toy-bounce{animation:.9s ease-in-out infinite toy-bounce;transform:translateY(103px)}.toy-spin{animation:1.3s linear infinite toy-roll}@keyframes pet-chase{0%{transform:translate(10%)}15.4286%{transform:translate(24%)}23.1429%{transform:translate(29%)}36%{transform:translate(78%)}41.1429%,50.8571%{transform:translate(86%)}64.5714%{transform:translate(72%)}72.2857%{transform:translate(67%)}86%{transform:translate(18%)}91.1429%,92.8571%{transform:translate(10%)}42.8571%,50%{transform:translate(86%)}92.8571%,to{transform:translate(10%)}}@keyframes toy-chase{0%{transform:translate(18%)}15.4286%{transform:translate(32%)}23.1429%{transform:translate(40%)}29.1429%{transform:translate(76%)}34.2857%{transform:translate(91%)}37.7143%,41.1429%{transform:translate(94%)}50.8571%{transform:translate(78%)}64.5714%{transform:translate(64%)}72.2857%{transform:translate(56%)}78.2857%{transform:translate(20%)}83.4286%{transform:translate(7%)}87.7143%,91.1429%{transform:translate(4%)}92.8571%{transform:translate(18%)}42.8571%,50%{transform:translate(83.333%)}92.8571%,to{transform:translate(18%)}}@keyframes pet-turn{0%,42.7714%{transform:scaleX(1)}42.8571%,92.7714%{transform:scaleX(-1)}92.8571%{transform:scaleX(1)}42.8571%,50%{transform:scaleX(-1)}92.8571%,to{transform:scaleX(1)}}.pet-play-action{transform-origin:0 110px;animation:28s linear infinite pet-play-action}@keyframes pet-play-action{0%,34.2857%,42%,84.2857%,92%,92.8571%{transform:none}36%,86%{animation-timing-function:ease-out;transform:translateY(2px)scale(1.03,.92)}38.5714%,88.5714%{animation-timing-function:ease-in;transform:translateY(-36px)rotate(-6deg)}41.1429%,91.1429%{transform:translateY(2px)scale(1.04,.94)}42.8571%,50%{transform:none}92.8571%,to{transform:none}}.pet-journey>.pet-shadow{animation:28s linear infinite pet-jump-shadow}@keyframes pet-jump-shadow{0%,36%,41.1429%,86%,91.1429%,92.8571%{opacity:.07;scale:1}38.5714%,88.5714%{opacity:.025;scale:.65}42.8571%,50%{opacity:.07;scale:1}92.8571%,to{opacity:.07;scale:1}}@keyframes pet-step-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes pet-step{0%,to{transform:rotate(-12deg)}50%{transform:rotate(13deg)}}@keyframes pet-tail-wave{0%,to{transform:rotate(-8deg)}50%{transform:rotate(12deg)}}@keyframes pet-head-curious{0%,75%,to{transform:rotate(0)}85%{transform:rotate(8deg)}}@keyframes toy-bounce{0%,to{transform:translateY(103px)}50%{transform:translateY(96px)}}@keyframes toy-roll{to{transform:rotate(360deg)}}@media (width<=700px){.footer-companion{height:76px}}.portfolio.motion-paused .footer-companion *{animation-play-state:paused!important}@media (prefers-reduced-motion:reduce){.portfolio:not(.motion-enabled) .footer-companion *{animation:none!important}.portfolio:not(.motion-enabled) .pet-journey{transform:translate(43%)}.portfolio:not(.motion-enabled) .toy-journey{transform:translate(52%)}}.pet-miniature{transform:translateY(17px)scale(.85)}.footer-companion .pet-fur,.footer-companion .dog-ear,.footer-companion .pet-muzzle,.footer-companion .pet-ink{fill:var(--pet-tone);stroke:var(--pet-tone);opacity:1}.footer-companion .pet-leg,.footer-companion .pet-tail{stroke:var(--pet-tone)}.footer-companion .pet-eye,.footer-companion .pet-mouth{fill:none;stroke:#171717;stroke-width:1.3px}.footer-companion .pet-ear-inner{fill:var(--paper);opacity:.7}.footer-companion .pet-whiskers{stroke:#171717;opacity:1}.footer-companion .pet-ink{fill:#171717;stroke:#171717}.footer-companion .toy-spin{scale:.75}.footer-companion .toy-bounce{translate:0 3px}.footer-companion .pet-ground{opacity:.5}.footer-companion .pet-little-spark{stroke:var(--pet-tone);opacity:.2}.pet-leg-back,.pet-leg-near-front{animation:28s linear infinite pet-gait-near}.pet-leg-front,.pet-leg-near-back{animation:28s linear infinite pet-gait-far}.footer.footer{padding-block:32px 8px;display:block}.footer .footer-content{grid-template-columns:1fr 1.2fr 1fr;align-items:center;gap:25px;padding-bottom:12px;display:grid}.footer-signature{align-items:center;gap:18px;display:flex}.footer-signature>span{color:var(--muted);font:italic 13px/1.6 Playfair Display,serif}.footer .footer-note{order:initial;width:auto;color:var(--ink);text-align:center;border:0;margin:0;padding:0;font-size:12px;line-height:1.9}.footer .footer-note>span{color:var(--muted);margin-top:2px;font-size:10px;display:block}.footer .footer-back{color:var(--muted);justify-self:end;align-items:center;gap:14px;font-size:12px;display:inline-flex}.footer-back:hover{color:var(--accent)}.footer .footer-companion{margin-top:10px}@media (width<=700px){.footer.footer{padding-top:26px}.footer .footer-content{grid-template-columns:1fr auto;gap:19px 12px}.footer-signature{gap:12px}.footer-signature>span{max-width:100px;font-size:11px}.footer .footer-back{gap:8px;font-size:10px}.footer .footer-note{border-top:1px solid var(--line);grid-column:1/-1;padding-top:16px;font-size:11px}.footer .footer-note>span{font-size:10px}.footer .footer-companion{margin-top:4px}}@media (prefers-reduced-motion:reduce){.footer-back>span{transition:none}}.footer-companion .toy-bounce{animation:28s linear infinite toy-toss}.footer-companion .toy-spin{animation:28s linear infinite toy-spin-cycle}@keyframes toy-toss{0%,2.5714%{transform:translateY(103px)}6.8571%{transform:translateY(96px)}12%{transform:translateY(103px)}17.1429%{transform:translateY(98px)}22.2857%{transform:translateY(103px)}24%{animation-timing-function:cubic-bezier(.18,.7,.3,1);transform:translateY(101px)}28.2857%{animation-timing-function:cubic-bezier(.55,0,.85,.4);transform:translateY(22px)}32.5714%{animation-timing-function:ease-out;transform:translateY(103px)}34.2857%{animation-timing-function:ease-in;transform:translateY(70px)}36%{animation-timing-function:ease-out;transform:translateY(103px)}37.2857%{animation-timing-function:ease-in;transform:translateY(88px)}38.5714%,41.1429%,50.8571%{transform:translateY(103px)}56%{transform:translateY(96px)}61.1429%{transform:translateY(103px)}66.2857%{transform:translateY(98px)}71.4286%{transform:translateY(103px)}73.1429%{animation-timing-function:cubic-bezier(.18,.7,.3,1);transform:translateY(101px)}77.4286%{animation-timing-function:cubic-bezier(.55,0,.85,.4);transform:translateY(22px)}81.7143%{animation-timing-function:ease-out;transform:translateY(103px)}83.4286%{animation-timing-function:ease-in;transform:translateY(70px)}85.1429%{animation-timing-function:ease-out;transform:translateY(103px)}86.4286%{animation-timing-function:ease-in;transform:translateY(88px)}87.7143%,91.1429%,92.8571%{transform:translateY(103px)}42.8571%,50%{transform:translateY(103px)}92.8571%,to{transform:translateY(103px)}}@keyframes toy-spin-cycle{0%{transform:rotate(0)}15.4286%{transform:rotate(360deg)}23.1429%{transform:rotate(450deg)}29.1429%{transform:rotate(1170deg)}34.2857%{transform:rotate(1530deg)}41.1429%{transform:rotate(1620deg)}50.8571%{transform:rotate(1440deg)}64.5714%{transform:rotate(1080deg)}72.2857%{transform:rotate(990deg)}78.2857%{transform:rotate(270deg)}83.4286%{transform:rotate(-90deg)}91.1429%{transform:rotate(-180deg)}92.8571%{transform:rotate(0)}42.8571%,50%{transform:rotate(1500deg)}92.8571%,to{transform:rotate(0)}}.pet-tail-shape{fill:var(--pet-tone);stroke:var(--pet-tone);stroke-width:1px;stroke-linejoin:round;transform-origin:-27px 83px}.dog-tail{animation:1.8s ease-in-out infinite pet-tail-wave}.footer-cat .cat-tail{animation-duration:2.8s}.footer-pet-area{background:var(--paper);border-bottom:1px solid var(--line);padding-top:8px}.footer-pet-area .footer-companion{height:90px;margin:0}@media (width<=700px){.footer-pet-area .footer-companion{height:76px}}.footer-companion .pet-body-bob{animation:none}.footer-companion .pet-leg{stroke:none;fill:var(--pet-tone);transform-origin:0 0}.pet-upper-limb,.pet-lower-limb,.pet-paw{fill:var(--pet-tone);stroke:none}.pet-leg-far{opacity:.8}.pet-ankle{transform-origin:0 0}.pet-leg-back .pet-ankle,.pet-leg-near-front .pet-ankle{animation:28s linear infinite pet-ankle-near}.pet-leg-front .pet-ankle,.pet-leg-near-back .pet-ankle{animation:28s linear infinite pet-ankle-far}.footer-pet-area,.footer-pet-area .footer-companion,.footer-pet-area .footer-pet-scene{box-shadow:none;background:0 0;border:0}.footer-pet-area .pet-ground{display:none}.contact-section>.footer-pet-area{pointer-events:none;z-index:1;background:0 0;border:0;height:90px;padding:0;position:absolute;bottom:-10px;left:0;right:0}.contact-section>.footer-pet-area .footer-companion{height:90px;margin:0}@media (width<=700px){.contact-section>.footer-pet-area{height:76px;bottom:-9px}.contact-section>.footer-pet-area .footer-companion{height:76px}}.footer-companion .pet-leg,.footer-companion .pet-ankle{transform-origin:0 0;animation:none!important}.footer-companion .pet-foot{transform-origin:0 0}.footer-companion .pet-paw{stroke:none}.footer-companion .pet-leg-far{opacity:.7}.footer-companion .pet-fur,.pet-tail-shape{stroke-linecap:round;stroke-linejoin:round}.pet-fur-detail{fill:none;stroke:var(--paper);stroke-width:1px;stroke-linecap:round;opacity:.35}.pet-standing-pose{animation:28s linear infinite pet-standing-rest}.pet-resting-pose{opacity:0;pointer-events:none;animation:28s linear infinite pet-seated-rest}.pet-rest-breath{transform-origin:0 111px;animation:2s ease-in-out infinite pet-rest-breath}@keyframes pet-standing-rest{0%,42%{opacity:1}42.8571%,49.3%{opacity:0}50%,92%{opacity:1}92.8571%,99.3%{opacity:0}to{opacity:1}}@keyframes pet-seated-rest{0%,42%{opacity:0}42.8571%,49.3%{opacity:1}50%,92%{opacity:0}92.8571%,99.3%{opacity:1}to{opacity:0}}@keyframes pet-rest-breath{0%,to{transform:scale(1)}50%{transform:scale(1.025,1.035)}}.footer-cat .pet-eye{stroke-width:1.5px}.footer-cat .pet-mouth{stroke-width:1px}.footer-cat .pet-whiskers{stroke-width:.65px}.footer-cat .pet-ink{stroke-width:.5px;stroke-linejoin:round}.husky-mask{fill:var(--paper);opacity:.85;stroke:none}.footer-dog .pet-eye{stroke-width:1.5px}.footer-dog .pet-mouth{stroke-width:1px}.footer-dog .pet-ink{stroke-width:.5px;stroke-linejoin:round}.footer .footer-back{color:color-mix(in srgb,var(--muted) 70%,transparent);box-shadow:none;letter-spacing:.15px;background:0 0}.footer .footer-back:hover,.footer .footer-back:focus-visible{color:var(--accent);background:0 0}.footer .footer-back:after{background:color-mix(in srgb,var(--accent) 45%,transparent)}.footer .footer-back .interactive-link-icons{opacity:.8}.footer .footer-tagline{color:var(--muted);text-wrap:balance;font:italic 15px/1.7 Playfair Display,serif;display:block}@media (width<=700px){.footer .footer-tagline{font-size:14px}}.resume-download{max-width:100%;min-height:44px;color:var(--ink);box-shadow:none;background:0 0;border:0;border-radius:3px;align-items:center;gap:12px;padding:7px 0;transition:color .25s;display:inline-flex}.resume-document{width:24px;color:var(--accent);flex-shrink:0;place-items:center;display:grid}.resume-document svg{stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.resume-download-copy{text-align:left;flex-direction:column;gap:4px;display:flex}.resume-download-copy>span{text-underline-offset:5px;font-size:14px;font-weight:400;line-height:1.4;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .25s}.resume-download-copy small{letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);font-size:9px}.resume-download-arrow{width:22px;height:24px;color:var(--accent);flex-shrink:0;place-items:center;margin-left:10px;display:grid}.resume-download-arrow svg{stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px;transition:transform .25s}.resume-download:hover{color:var(--accent)}.resume-download:hover .resume-download-copy>span{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.resume-download:hover .resume-download-arrow svg{transform:translateY(2px)}.resume-download:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.portfolio.motion-paused .resume-download,.portfolio.motion-paused .resume-download *{transition:none}@media (prefers-reduced-motion:reduce){.resume-download,.resume-download *{transition:none}.resume-download:hover .resume-download-arrow svg{transform:none}}.education-entry{border-block:1px solid var(--line);background:0 0;grid-template-columns:1.15fr 1fr;gap:45px;margin-top:32px;padding:32px 0;display:grid}.education-kicker{color:var(--accent);letter-spacing:2px;text-transform:uppercase;align-items:center;gap:10px;font-size:10px;font-weight:500;display:flex}.education-kicker svg{stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.education-degree h3{letter-spacing:-.5px;color:var(--ink);margin:18px 0 12px;font:500 clamp(25px,2.4vw,32px)/1.3 Playfair Display,serif}.education-university{color:var(--muted);font-size:14px;line-height:1.7}.education-graduation{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;font-size:11px;line-height:1.6;display:flex}.education-graduation>span{background:var(--accent);border-radius:50%;width:5px;height:5px;margin-right:2px}.education-graduation time{color:var(--accent)}.education-research{border-left:1px solid var(--line);align-self:center;padding-left:35px}.education-research-label{letter-spacing:1.4px;text-transform:uppercase;color:var(--accent);font-size:9px;line-height:1.6}.education-research h4{color:var(--ink);margin:12px 0 10px;font:500 22px/1.45 Playfair Display,serif}.education-research>p:last-child{color:var(--muted);max-width:390px;font-size:13px;line-height:1.85}@media (width<=760px){.education-entry{grid-template-columns:1fr;gap:25px;padding:27px 0}.education-degree h3{font-size:27px}.education-research{border-left:0;border-top:1px solid var(--line);padding:23px 0 0}.education-research h4{font-size:21px}.education-title-break{display:none}}.portfolio .hero{align-items:center;height:auto;min-height:100svh;max-height:none;padding-block:130px 110px;display:grid}.portfolio .hero>.hero-content{padding-block:0}@media (width<=700px){.portfolio .hero{padding-block:115px 95px}}.hero-motion-ready .hero-content{transform:translate3d(0,calc(var(--hero-progress,0) * 55px),0);opacity:clamp(0,calc(1 - var(--hero-progress,0) * 1.25),1);transition:opacity .35s,filter .4s}.hero-motion-ready .seasonal-scene{transform:translate3d(0,calc(var(--hero-progress,0) * 140px),0) scale(calc(1 + var(--hero-progress,0) * .04));transform-origin:bottom}.hero-motion-ready .hero-bottom{opacity:clamp(0,calc(1 - var(--hero-progress,0) * 2),1)}.hero-motion-ready .hero-content>*{animation:.8s cubic-bezier(.2,.7,.3,1) both hero-introduction;animation-delay:var(--hero-intro-delay,0s)}.hero-motion-ready .hero-content>.hello{--hero-intro-delay:60ms}.hero-motion-ready .hero-content>h1{--hero-intro-delay:.12s}.hero-motion-ready .hero-content>.hero-description{--hero-intro-delay:.2s}.hero-motion-ready .hero-content>.hero-actions{--hero-intro-delay:.28s}.hero-motion-ready .hero-content>.hero-note{--hero-intro-delay:.34s}.hero-motion-ready .hero-content:focus-within>*{animation:none}@keyframes hero-introduction{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media (width<=700px){.hero-motion-ready .hero-content{transform:translate3d(0,calc(var(--hero-progress,0) * 28px),0)}.hero-motion-ready .seasonal-scene{transform:translate3d(0,calc(var(--hero-progress,0) * 70px),0)}}@media (prefers-reduced-motion:reduce){.hero-motion-ready .hero-content,.hero-motion-ready .seasonal-scene{opacity:1;transform:none}.hero-motion-ready .hero-bottom{opacity:1}.hero-motion-ready .hero-content>*{animation:none}}.hero-motion-ready.hero-departing .hero-content{opacity:0;filter:blur(3px)}.hero-motion-ready.hero-departing .hero-bottom{opacity:0;transition:opacity .3s}.hero-motion-ready .hero-content:focus-within{filter:none}@media (prefers-reduced-motion:reduce){.hero-motion-ready .hero-content,.hero-motion-ready .hero-bottom{transition:none}.hero-motion-ready.hero-departing .hero-content,.hero-motion-ready.hero-departing .hero-bottom{opacity:1;filter:none}}
