:root{--color-primitive-blue-50: #e8f1fe;--color-primitive-blue-100: #d9e6ff;--color-primitive-blue-200: #c5d7fb;--color-primitive-blue-300: #9db7f9;--color-primitive-blue-400: #7096f8;--color-primitive-blue-500: #4979f5;--color-primitive-blue-600: #3460fb;--color-primitive-blue-700: #264af4;--color-primitive-blue-800: #0031d8;--color-primitive-blue-900: #0017c1;--color-primitive-blue-1000: #00118f;--color-primitive-blue-1100: #000071;--color-primitive-blue-1200: #000060;--color-primitive-light-blue-50: #f0f9ff;--color-primitive-light-blue-100: #dcf0ff;--color-primitive-light-blue-200: #c0e4ff;--color-primitive-light-blue-300: #97d3ff;--color-primitive-light-blue-400: #57b8ff;--color-primitive-light-blue-500: #39abff;--color-primitive-light-blue-600: #008bf2;--color-primitive-light-blue-700: #0877d7;--color-primitive-light-blue-800: #0066be;--color-primitive-light-blue-900: #0055ad;--color-primitive-light-blue-1000: #00428c;--color-primitive-light-blue-1100: #00316a;--color-primitive-light-blue-1200: #00234b;--color-primitive-cyan-50: #e9f7f9;--color-primitive-cyan-100: #c8f8ff;--color-primitive-cyan-200: #99f2ff;--color-primitive-cyan-300: #79e2f2;--color-primitive-cyan-400: #2bc8e4;--color-primitive-cyan-500: #01b7d6;--color-primitive-cyan-600: #00a3bf;--color-primitive-cyan-700: #008da6;--color-primitive-cyan-800: #008299;--color-primitive-cyan-900: #006f83;--color-primitive-cyan-1000: #006173;--color-primitive-cyan-1100: #004c59;--color-primitive-cyan-1200: #003741;--color-primitive-green-50: #e6f5ec;--color-primitive-green-100: #c2e5d1;--color-primitive-green-200: #9bd4b5;--color-primitive-green-300: #71c598;--color-primitive-green-400: #51b883;--color-primitive-green-500: #2cac6e;--color-primitive-green-600: #259d63;--color-primitive-green-700: #1d8b56;--color-primitive-green-800: #197a4b;--color-primitive-green-900: #115a36;--color-primitive-green-1000: #0c472a;--color-primitive-green-1100: #08351f;--color-primitive-green-1200: #032213;--color-primitive-lime-50: #ebfad9;--color-primitive-lime-100: #d0f5a2;--color-primitive-lime-200: #c0f354;--color-primitive-lime-300: #ade830;--color-primitive-lime-400: #9ddd15;--color-primitive-lime-500: #8cc80c;--color-primitive-lime-600: #7eb40d;--color-primitive-lime-700: #6fa104;--color-primitive-lime-800: #618e00;--color-primitive-lime-900: #507500;--color-primitive-lime-1000: #3e5a00;--color-primitive-lime-1100: #2c4100;--color-primitive-lime-1200: #1e2d00;--color-primitive-yellow-50: #fbf5e0;--color-primitive-yellow-100: #fff0b3;--color-primitive-yellow-200: #ffe380;--color-primitive-yellow-300: #ffd43d;--color-primitive-yellow-400: #ffc700;--color-primitive-yellow-500: #ebb700;--color-primitive-yellow-600: #d2a400;--color-primitive-yellow-700: #b78f00;--color-primitive-yellow-800: #a58000;--color-primitive-yellow-900: #927200;--color-primitive-yellow-1000: #806300;--color-primitive-yellow-1100: #6e5600;--color-primitive-yellow-1200: #604b00;--color-primitive-orange-50: #ffeee2;--color-primitive-orange-100: #ffdfca;--color-primitive-orange-200: #ffc199;--color-primitive-orange-300: #ffa66d;--color-primitive-orange-400: #ff8d44;--color-primitive-orange-500: #ff7628;--color-primitive-orange-600: #fb5b01;--color-primitive-orange-700: #e25100;--color-primitive-orange-800: #c74700;--color-primitive-orange-900: #ac3e00;--color-primitive-orange-1000: #8b3200;--color-primitive-orange-1100: #6d2700;--color-primitive-orange-1200: #541e00;--color-primitive-red-50: #fdeeee;--color-primitive-red-100: #ffdada;--color-primitive-red-200: #ffbbbb;--color-primitive-red-300: #ff9696;--color-primitive-red-400: #ff7171;--color-primitive-red-500: #ff5454;--color-primitive-red-600: #fe3939;--color-primitive-red-700: #fa0000;--color-primitive-red-800: #ec0000;--color-primitive-red-900: #ce0000;--color-primitive-red-1000: #a90000;--color-primitive-red-1100: #850000;--color-primitive-red-1200: #620000;--color-primitive-magenta-50: #f3e5f4;--color-primitive-magenta-100: #ffd0ff;--color-primitive-magenta-200: #ffaeff;--color-primitive-magenta-300: #ff8eff;--color-primitive-magenta-400: #f661f6;--color-primitive-magenta-500: #f137f1;--color-primitive-magenta-600: #db00db;--color-primitive-magenta-700: #c000c0;--color-primitive-magenta-800: #aa00aa;--color-primitive-magenta-900: #8b008b;--color-primitive-magenta-1000: #6c006c;--color-primitive-magenta-1100: #500050;--color-primitive-magenta-1200: #3b003b;--color-primitive-purple-50: #f1eafa;--color-primitive-purple-100: #ecddff;--color-primitive-purple-200: #ddc2ff;--color-primitive-purple-300: #cda6ff;--color-primitive-purple-400: #bb87ff;--color-primitive-purple-500: #a565f8;--color-primitive-purple-600: #8843e1;--color-primitive-purple-700: #6f23d0;--color-primitive-purple-800: #5c10be;--color-primitive-purple-900: #5109ad;--color-primitive-purple-1000: #41048e;--color-primitive-purple-1100: #30016c;--color-primitive-purple-1200: #21004b;--color-neutral-white: #ffffff;--color-neutral-black: #000000;--color-neutral-solid-gray-50: #f2f2f2;--color-neutral-solid-gray-100: #e6e6e6;--color-neutral-solid-gray-200: #cccccc;--color-neutral-solid-gray-300: #b3b3b3;--color-neutral-solid-gray-400: #999999;--color-neutral-solid-gray-420: #949494;--color-neutral-solid-gray-500: #7f7f7f;--color-neutral-solid-gray-536: #767676;--color-neutral-solid-gray-600: #666666;--color-neutral-solid-gray-700: #4d4d4d;--color-neutral-solid-gray-800: #333333;--color-neutral-solid-gray-900: #1a1a1a;--color-neutral-opacity-gray-50: rgba(0, 0, 0, .05);--color-neutral-opacity-gray-100: rgba(0, 0, 0, .1);--color-neutral-opacity-gray-200: rgba(0, 0, 0, .2);--color-neutral-opacity-gray-300: rgba(0, 0, 0, .3);--color-neutral-opacity-gray-400: rgba(0, 0, 0, .4);--color-neutral-opacity-gray-420: rgba(0, 0, 0, .42);--color-neutral-opacity-gray-500: rgba(0, 0, 0, .5);--color-neutral-opacity-gray-536: rgba(0, 0, 0, .54);--color-neutral-opacity-gray-600: rgba(0, 0, 0, .6);--color-neutral-opacity-gray-700: rgba(0, 0, 0, .7);--color-neutral-opacity-gray-800: rgba(0, 0, 0, .8);--color-neutral-opacity-gray-900: rgba(0, 0, 0, .9);--font-family-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-mono: "Noto Sans Mono", monospace;--elevation-1: 0 2px 8px 1px rgba(0,0,0,.1), 0 1px 5px 0 rgba(0,0,0,.3);--elevation-2: 0 2px 12px 2px rgba(0,0,0,.1), 0 1px 6px 0 rgba(0,0,0,.3);--elevation-3: 0 4px 16px 3px rgba(0,0,0,.1), 0 1px 6px 0 rgba(0,0,0,.3);--elevation-4: 0 6px 20px 4px rgba(0,0,0,.1), 0 2px 6px 0 rgba(0,0,0,.3);--elevation-5: 0 8px 24px 5px rgba(0,0,0,.1), 0 2px 10px 0 rgba(0,0,0,.3);--elevation-6: 0 10px 30px 6px rgba(0,0,0,.1), 0 3px 12px 0 rgba(0,0,0,.3);--elevation-7: 0 12px 36px 7px rgba(0,0,0,.1), 0 3px 14px 0 rgba(0,0,0,.3);--elevation-8: 0 14px 40px 7px rgba(0,0,0,.1), 0 3px 16px 0 rgba(0,0,0,.3);--color-semantic-success-1: var(--color-primitive-green-600);--color-semantic-success-2: var(--color-primitive-green-800);--color-semantic-error-1: var(--color-primitive-red-800);--color-semantic-error-2: var(--color-primitive-red-900);--color-semantic-warning-yellow-1: var(--color-primitive-yellow-700);--color-semantic-warning-yellow-2: var(--color-primitive-yellow-900);--color-semantic-warning-orange-1: var(--color-primitive-orange-600);--color-semantic-warning-orange-2: var(--color-primitive-orange-800);--color-key-50: var(--color-primitive-blue-50);--color-key-100: var(--color-primitive-blue-100);--color-key-200: var(--color-primitive-blue-200);--color-key-300: var(--color-primitive-blue-300);--color-key-400: var(--color-primitive-blue-400);--color-key-500: var(--color-primitive-blue-500);--color-key-600: var(--color-primitive-blue-600);--color-key-700: var(--color-primitive-blue-700);--color-key-800: var(--color-primitive-blue-800);--color-key-900: var(--color-primitive-blue-900);--color-key-1000: var(--color-primitive-blue-1000);--color-key-1100: var(--color-primitive-blue-1100);--color-key-1200: var(--color-primitive-blue-1200)}:root{--font-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "Noto Sans Mono", ui-monospace, SFMono-Regular, monospace;--ls-l: 0;--ls-m: .01em;--ls-s: .02em;--t-dsp-48b-140: 700 3rem/1.4 var(--font-sans);--t-std-36b-140: 700 2.25rem/1.4 var(--font-sans);--t-std-32b-140: 700 2rem/1.4 var(--font-sans);--t-std-28b-140: 700 1.75rem/1.4 var(--font-sans);--t-std-24b-150: 700 1.5rem/1.5 var(--font-sans);--t-std-20b-140: 700 1.25rem/1.4 var(--font-sans);--t-std-17b-150: 700 1.0625rem/1.5 var(--font-sans);--t-std-17n-160: 400 1.0625rem/1.6 var(--font-sans);--t-std-17n-170: 400 1.0625rem/1.7 var(--font-sans);--t-std-17n-175: 400 1.0625rem/1.75 var(--font-sans);--t-std-16b-150: 700 1rem/1.5 var(--font-sans);--t-std-16b-160: 700 1rem/1.6 var(--font-sans);--t-std-16n-150: 400 1rem/1.5 var(--font-sans);--t-std-16n-160: 400 1rem/1.6 var(--font-sans);--t-std-16n-170: 400 1rem/1.7 var(--font-sans);--t-std-14n-170: 400 .875rem/1.7 var(--font-sans);--t-dns-16n-130: 400 1rem/1.3 var(--font-sans);--t-dns-14n-130: 400 .875rem/1.3 var(--font-sans);--t-oln-20b: 700 1.25rem/1 var(--font-sans);--t-oln-16b: 700 1rem/1 var(--font-sans);--t-oln-16n: 400 1rem/1 var(--font-sans);--t-oln-14b: 700 .875rem/1 var(--font-sans);--t-oln-14n: 400 .875rem/1 var(--font-sans);--t-mono-14n-150: 400 .875rem/1.5 var(--font-mono);--fs-heading: clamp(1.5rem, 2.5vw, 1.75rem);color-scheme:light;font:var(--t-std-16n-160);letter-spacing:var(--ls-s);color:var(--text);background:var(--bg);--bg: var(--color-neutral-white);--bg-elevated: var(--color-neutral-white);--bg-card: var(--color-neutral-white);--border: var(--color-neutral-solid-gray-200);--border-hover: var(--color-neutral-solid-gray-420);--border-strong: var(--color-neutral-solid-gray-536);--text: var(--color-neutral-solid-gray-900);--text-subtle: var(--color-neutral-solid-gray-700);--text-heading: var(--color-neutral-solid-gray-900);--text-on-accent: var(--color-neutral-white);--accent: var(--color-key-900);--accent-strong: var(--color-key-1000);--accent-dim: var(--color-key-800);--accent-muted: var(--color-key-50);--focus-inner: var(--color-neutral-black);--focus-outer: var(--color-primitive-yellow-300);--radius: 8px;--radius-sm: 6px}:focus-visible{outline:2px solid var(--focus-inner);outline-offset:2px;box-shadow:0 0 0 4px var(--focus-outer);border-radius:2px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}a{color:inherit;text-decoration:none}p,h1,h2,h3,h4{margin-top:0}#root{min-height:100vh}.app-shell{position:relative;min-height:100vh}.app-shell:before{display:none}.ambient{display:none}.container{width:min(1120px,calc(100% - 2rem));margin:0 auto}.topbar{position:sticky;top:0;z-index:100;background:#ffffffb8;backdrop-filter:saturate(120%) blur(8px);-webkit-backdrop-filter:saturate(120%) blur(8px)}.topbar:after{display:none}.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}.brand{font:var(--t-std-24b-150);font-size:var(--fs-heading);line-height:1;letter-spacing:var(--ls-m);color:var(--text-heading)}.brand:before{display:none}.nav{display:flex;flex-wrap:wrap;gap:1.5rem;font:var(--t-oln-16n);letter-spacing:var(--ls-s)}.nav a{color:var(--text-subtle);transition:color .2s ease;position:relative}.nav a:before{display:none}.nav a:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--accent);border-radius:1px;transform:scaleX(0);transition:transform .2s ease}.nav a:hover{color:var(--text-heading)}.nav a:hover:after{transform:scaleX(1)}.hero{display:block;padding:2.5rem 0 3rem}.hero-kicker{display:flex;align-items:center;gap:.5rem;color:var(--accent);font:var(--t-std-16b-160);letter-spacing:var(--ls-s);margin-bottom:.75rem}.hero-kicker:before{display:none}.hero-name-row{display:flex;align-items:center;gap:.75rem}.hero h1{font:var(--t-std-24b-150);font-size:var(--fs-heading);letter-spacing:var(--ls-m);margin-bottom:.25rem;color:var(--text-heading);position:relative}.hero h1:before,.hero h1:after{display:none}.hero-name-roman{font:var(--t-dns-14n-130);letter-spacing:var(--ls-s);color:var(--text-subtle);margin-bottom:1rem}.hero-role{margin-bottom:.75rem;font:var(--t-std-16b-160);letter-spacing:var(--ls-s);color:var(--accent)}.hero-intro{font:var(--t-std-17n-160);letter-spacing:var(--ls-m);color:var(--text);max-width:48rem}.hero-description{font:var(--t-std-16n-160);letter-spacing:var(--ls-s);color:var(--text-subtle)}.hero-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--text-heading);transition:color .2s ease}.hero-badge:hover{color:var(--accent)}.project-links{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.7rem 1.5rem;border-radius:var(--radius);font:var(--t-oln-16b);letter-spacing:var(--ls-s);transition:all .2s ease}.button:hover{transform:translateY(-1px)}.button-primary{color:var(--accent);background:transparent;border:1px solid var(--accent)}.button-primary:hover{color:var(--accent-strong);background:var(--accent-muted);border-color:var(--accent-strong)}.badge-list{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.badge{display:inline-flex;align-items:center;flex:none;gap:.5rem;min-height:32px;padding:.3rem .7rem;border:1px solid var(--border-hover);border-radius:var(--radius-sm);color:var(--text);font:var(--t-oln-14n);letter-spacing:var(--ls-s);white-space:nowrap}.badge svg{flex:none;color:var(--text-subtle)}.experience-period{margin-bottom:.25rem;font:var(--t-oln-14b);letter-spacing:var(--ls-s);text-transform:uppercase;color:var(--text-subtle)}.section{padding:3rem 0 1.5rem;animation:fadeUp .7s ease both}.section-heading{margin-bottom:1.5rem;position:relative}.section-heading h2{font:var(--t-std-24b-150);font-size:var(--fs-heading);letter-spacing:var(--ls-m);margin-bottom:0;color:var(--text-heading)}.panel,.about-card,.contact-panel{position:relative;padding:0;background:none;border:0;border-radius:0;box-shadow:none}.panel:before,.about-card:before,.contact-panel:before{display:none}.panel h3{margin-bottom:1rem;font:var(--t-std-17b-150);letter-spacing:var(--ls-m);color:var(--text-heading)}.about-body{font:var(--t-std-17n-170);letter-spacing:var(--ls-m);color:var(--text)}.side-project{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);align-items:flex-start;gap:2rem}.side-project-preview{display:block;overflow:hidden;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:14px;box-shadow:0 14px 36px #13223424}.side-project-browser-bar{position:relative;display:flex;align-items:center;min-height:38px;padding:0 .8rem;background:var(--color-neutral-solid-gray-100);border-bottom:1px solid var(--border)}.side-project-browser-dots{display:flex;gap:5px}.side-project-browser-dots i{display:block;width:8px;height:8px;background:var(--color-neutral-solid-gray-420);border-radius:50%}.side-project-browser-address{position:absolute;left:50%;transform:translate(-50%);color:var(--text-subtle);font:var(--t-mono-14n-150);letter-spacing:0}.side-project-preview-image{position:relative;overflow:hidden;aspect-ratio:4 / 3}.side-project-preview-image iframe{display:block;width:200%;height:200%;background:var(--bg-card);border:0;pointer-events:none;transform:scale(.5);transform-origin:top left}.side-project-heading{display:grid;gap:.35rem}.side-project-heading h3{margin-bottom:0;font:var(--t-std-20b-140);letter-spacing:var(--ls-m);color:var(--text-heading)}.side-project-body{display:grid;gap:.85rem;min-width:0}.side-project-points{margin:0;display:grid;gap:.75rem}.side-project-points p{margin:0;font:var(--t-std-16n-150);letter-spacing:var(--ls-s)}.side-project-link{width:fit-content;margin-top:.35rem}.card-grid,.about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 2.5rem}.experience-list{display:grid;gap:2rem}.experience-list>*+*{padding-top:2rem;border-top:1px solid var(--border)}.experience-card{display:grid;gap:1rem}.experience-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.experience-heading h3{font:var(--t-std-17b-150);letter-spacing:var(--ls-m);color:var(--text-heading);margin-bottom:0}.experience-role{margin:.35rem 0 0;color:var(--text-subtle);font:var(--t-oln-14b);letter-spacing:var(--ls-s)}.experience-projects{display:grid;gap:1.1rem}.experience-project-card h4{font:var(--t-std-16b-160);letter-spacing:var(--ls-s);color:var(--text);margin-bottom:.35rem}.experience-project-card h4:before{display:none}.experience-project-card p{font:var(--t-std-16n-150);letter-spacing:var(--ls-s);color:var(--text-subtle);margin-bottom:0}.section-lead{margin-bottom:1.75rem;max-width:48rem;font:var(--t-std-16n-160);letter-spacing:var(--ls-s)}.architecture-stack{display:grid;gap:1.5rem}.architecture-map{margin:0}.architecture-track{padding:1.5rem 0}.architecture-track-heading{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem}.architecture-track-heading>span{padding-top:.15rem;color:var(--accent);font:var(--t-mono-14n-150)}.architecture-track-heading h4{margin:0 0 .1rem;color:var(--text-heading);font:var(--t-std-17b-150);letter-spacing:var(--ls-m)}.architecture-access-flow{display:grid;grid-template-columns:minmax(130px,.7fr) 72px minmax(0,4fr);align-items:center}.architecture-aws-boundary{position:relative;padding:2.75rem 1rem 1rem;border:1px solid var(--border-hover);border-radius:10px;background:color-mix(in srgb,var(--accent-muted) 45%,white)}.architecture-aws-label{position:absolute;top:.75rem;left:1rem;display:inline-flex;align-items:center;gap:.4rem;color:var(--text-heading);font:var(--t-oln-14b);letter-spacing:var(--ls-s)}.architecture-aws-flow,.architecture-deploy-flow{display:grid;grid-template-columns:minmax(120px,1fr) 64px minmax(120px,1fr) 64px minmax(120px,1fr);align-items:center}.architecture-node{display:flex;align-items:center;gap:.75rem;min-height:72px;padding:.85rem;background:var(--bg-card);border:1px solid var(--border-hover);border-radius:8px}.architecture-node-accent{border-color:var(--accent-dim)}.architecture-node-icon{display:grid;flex:none;width:2.25rem;height:2.25rem;place-items:center;color:var(--accent);background:var(--accent-muted);border-radius:7px}.architecture-node-copy{display:grid;min-width:0;gap:.1rem}.architecture-node-copy strong,.architecture-deploy-actions strong{color:var(--text-heading);font:var(--t-std-14n-170);font-weight:700;letter-spacing:var(--ls-s)}.architecture-node-copy small,.architecture-deploy-actions small{color:var(--text-subtle);font:var(--t-dns-14n-130);letter-spacing:var(--ls-s)}.architecture-connector{position:relative;display:grid;align-items:center;padding:1rem .3rem 0}.architecture-connector span{position:absolute;top:-.4rem;left:50%;color:var(--text-subtle);font:var(--t-oln-14n);font-size:.72rem;letter-spacing:var(--ls-s);white-space:nowrap;transform:translate(-50%)}.architecture-connector i{position:relative;display:block;height:2px;background:var(--accent)}.architecture-connector i:after{content:"";position:absolute;top:50%;right:-1px;width:7px;height:7px;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:translateY(-50%) rotate(45deg)}.architecture-connector-muted i{height:1px;background:repeating-linear-gradient(to right,var(--text-subtle) 0 5px,transparent 5px 9px)}.architecture-connector-muted i:after{border-color:var(--text-subtle)}.architecture-support-note{display:flex;align-items:center;gap:.45rem;width:fit-content;margin:.8rem auto 0;color:var(--text-subtle);font:var(--t-dns-14n-130);letter-spacing:var(--ls-s)}.architecture-support-note svg{flex:none;color:var(--accent)}.architecture-deploy-flow{grid-template-columns:minmax(140px,1fr) 72px minmax(140px,1fr) 72px minmax(250px,1.5fr)}.architecture-deploy-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.architecture-deploy-actions>div{display:flex;align-items:center;gap:.6rem;min-height:72px;padding:.75rem;background:var(--accent-muted);border-radius:8px}.architecture-deploy-actions svg{flex:none;color:var(--accent)}.architecture-deploy-actions span{display:grid;gap:.1rem}.architecture-management-flow{display:grid;justify-items:center}.architecture-management-root{width:min(240px,100%)}.architecture-management-connector{position:relative;display:grid;justify-items:center;width:100%;height:56px}.architecture-management-connector span{position:absolute;top:50%;left:calc(50% + .75rem);color:var(--text-subtle);font:var(--t-oln-14n);font-size:.72rem;letter-spacing:var(--ls-s);white-space:nowrap;transform:translateY(-50%)}.architecture-management-connector i{position:relative;display:block;width:1px;height:100%;background:repeating-linear-gradient(to bottom,var(--text-subtle) 0 5px,transparent 5px 9px)}.architecture-management-connector i:after{content:"";position:absolute;bottom:0;left:50%;width:7px;height:7px;border-top:2px solid var(--text-subtle);border-right:2px solid var(--text-subtle);transform:translate(-50%) rotate(135deg)}.architecture-managed-cloud{position:relative;width:min(820px,100%);padding:3rem 1rem 1rem;background:color-mix(in srgb,var(--accent-muted) 45%,white);border:1px solid var(--border-hover);border-radius:10px}.architecture-resource-map{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem}.architecture-resource-map>:nth-child(-n+3){grid-column:span 2}.architecture-resource-map>:nth-child(4){grid-column:2 / span 2}.architecture-resource-map>:nth-child(5){grid-column:4 / span 2}.record-list{margin:0;padding:0;list-style:none}.record-row{display:flex;align-items:baseline;gap:1rem;padding:.85rem 0}.record-meta{display:inline-flex;align-items:center;gap:.4rem;flex:none;min-width:6.5rem;font:var(--t-mono-14n-150);letter-spacing:var(--ls-s);color:var(--text-subtle)}.record-name{font:var(--t-std-16n-160);letter-spacing:var(--ls-s);color:var(--text)}.contact-section-layout{display:grid;gap:1.5rem;max-width:560px;margin:0 auto 4rem}.contact-panel{display:grid;gap:1.25rem}.contact-form-panel{margin-bottom:0}.contact-form{display:grid;gap:1rem;width:100%}.contact-form-lead{margin:0 0 .25rem;font:var(--t-std-16n-160);letter-spacing:var(--ls-s);color:var(--text-subtle)}.contact-field{display:grid;gap:.35rem}.contact-label{font:var(--t-std-16b-150);letter-spacing:var(--ls-s);color:var(--text-heading)}.contact-required{color:var(--accent)}.contact-input,.contact-textarea{width:100%;padding:.65rem .85rem;font:var(--t-std-16n-150);letter-spacing:var(--ls-s);color:var(--text);background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .2s ease,box-shadow .2s ease}.contact-input::placeholder,.contact-textarea::placeholder{color:var(--text-subtle);opacity:.75}.contact-input:hover,.contact-textarea:hover{border-color:var(--border-hover)}.contact-input:focus-visible,.contact-textarea:focus-visible{border-color:var(--accent)}.contact-textarea{resize:vertical;min-height:8rem;font:var(--t-std-16n-160);letter-spacing:var(--ls-s)}.contact-submit{width:fit-content;min-width:7.5rem;justify-self:start;margin-top:.25rem;cursor:pointer}.site-footer{margin-top:2rem;padding:2rem 0;border-top:1px solid var(--border);text-align:center}.site-footer p{margin:0;font:var(--t-std-14n-170);letter-spacing:var(--ls-s);color:var(--text-subtle)}.section p,.section li{color:var(--text-subtle)}.project-card{display:grid;gap:1rem}.project-header{display:grid;gap:.8rem}.project-header h4{margin-bottom:0;font:var(--t-std-17b-150);letter-spacing:var(--ls-m);color:var(--text-heading)}.project-outcome{padding-top:.25rem;border-top:1px solid var(--border)}.inline-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--accent);transition:color .2s ease}.inline-link:hover{color:var(--accent-strong)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.hero-copy>*{animation:fadeUp .6s ease both}.hero-copy>:nth-child(1){animation-delay:0ms}.hero-copy>:nth-child(2){animation-delay:60ms}.hero-copy>:nth-child(3){animation-delay:.12s}.hero-copy>:nth-child(4){animation-delay:.18s}.hero-copy>:nth-child(5){animation-delay:.24s}.hero-copy>:nth-child(6){animation-delay:.3s}.hero-copy>:nth-child(7){animation-delay:.36s}.card-grid>*,.experience-list>*{animation:fadeUp .6s ease both}.card-grid>:nth-child(1),.experience-list>:nth-child(1){animation-delay:40ms}.card-grid>:nth-child(2),.experience-list>:nth-child(2){animation-delay:.1s}.card-grid>:nth-child(3),.experience-list>:nth-child(3){animation-delay:.16s}.card-grid>:nth-child(4),.experience-list>:nth-child(4){animation-delay:.22s}.card-grid>:nth-child(5),.experience-list>:nth-child(5){animation-delay:.28s}.card-grid>:nth-child(6),.experience-list>:nth-child(6){animation-delay:.34s}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:860px){html{scroll-padding-top:152px}.card-grid,.about-grid,.experience-list{grid-template-columns:1fr}.hero{padding-top:2rem}.topbar-inner{min-height:auto;padding:1rem 0;align-items:flex-start;flex-direction:column}.experience-heading{flex-direction:column;align-items:flex-start}.side-project{grid-template-columns:1fr}}@media(max-width:760px){.architecture-access-flow,.architecture-aws-flow,.architecture-deploy-flow,.architecture-management-flow{grid-template-columns:1fr}.architecture-connector{min-height:52px;padding:0;justify-items:center}.architecture-connector span{top:50%;left:calc(50% + .8rem);transform:translateY(-50%)}.architecture-connector i{width:2px;height:36px}.architecture-connector i:after{inset:auto auto -1px 50%;transform:translate(-50%) rotate(135deg)}.architecture-connector-muted i{width:1px;height:36px;background:repeating-linear-gradient(to bottom,var(--text-subtle) 0 5px,transparent 5px 9px)}.architecture-deploy-actions,.architecture-resource-map{grid-template-columns:repeat(2,minmax(0,1fr))}.architecture-resource-map>*{grid-column:auto!important}}@media(max-width:560px){html{scroll-padding-top:192px}.container{width:min(1120px,calc(100% - 1.25rem))}.button{width:100%}.contact-submit{width:fit-content}.side-project-browser-address{font-size:.75rem}.architecture-track{padding:1rem 0}.architecture-aws-boundary{padding-right:.75rem;padding-left:.75rem}.architecture-deploy-actions,.architecture-resource-map{grid-template-columns:1fr}}
