/*! tailwindcss v4.3.5 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.resize{resize:both}}:root{--bg:#fcfafb;--surface:#fff;--text:#191332;--muted:#605970;--accent:#702d89;--accent-soft:#f1e0f5;--border:#e5d8e8;--about:#f7edf8;--button-text:#fff;color-scheme:light}:root[data-theme=dark]{--bg:#100e24;--surface:#1b1831;--text:#faf5f7;--muted:#c7bdd0;--accent:#dba3ed;--accent-soft:#413050;--border:#51405e;--about:#211b35;--button-text:#20102c;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,system-ui,sans-serif;line-height:1.6;transition:background-color .25s,color .25s}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.container{width:min(1120px,100% - 48px);margin-inline:auto}.skip{background:var(--surface);z-index:5;padding:8px;position:absolute;top:-80px;left:16px}.skip:focus{top:8px}.header{border-bottom:1px solid var(--border)}.header-inner{align-items:center;gap:32px;min-height:88px;display:flex}.brand{white-space:nowrap;font-family:Georgia,serif;font-weight:700}.book,.brand{font-size:24px}.book{margin-right:8px}.book,.brand-dot{color:var(--accent)}nav{gap:32px;margin-left:auto;font-size:15px;font-weight:600;display:flex}.text-link:hover,nav a:hover,nav a[aria-current=location]{color:var(--accent)}.theme-toggle{border:1px solid var(--border);width:48px;height:48px;color:var(--text);background:var(--surface);cursor:pointer;border-radius:50%;flex:none;font-size:24px}.hero{grid-template-columns:1.25fr .75fr;align-items:center;gap:64px;padding-block:96px;display:grid}.eyebrow,.project-label,.section-number{text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-size:12px;font-weight:700}.eyebrow,.project-label{background:var(--accent-soft);border-radius:999px;padding:8px 16px;display:inline-block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,serif;line-height:1.1}h1{letter-spacing:-.045em;margin-top:24px;font-size:clamp(56px,6vw,80px)}.hero-phrase{color:var(--accent);font-family:Georgia,serif;font-size:clamp(28px,3vw,40px);font-style:italic}.intro{max-width:560px;color:var(--muted);margin-top:24px;font-size:18px}.tags{flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none;display:flex}.tags li{background:var(--accent-soft);color:var(--text);padding:4px 16px;font-size:13px}.button,.tags li{border-radius:999px}.button{justify-content:center;align-items:center;gap:24px;min-height:48px;padding:12px 24px;font-weight:700;transition:transform .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.primary{background:var(--accent);color:var(--button-text)}.secondary{border:1px solid var(--accent);color:var(--accent)}.hero .button{margin-top:32px}.portrait-wrap{aspect-ratio:1;border:1px solid var(--border);background:var(--accent-soft);border-radius:50%;justify-self:end;width:min(100%,360px);padding:8px}.portrait{object-fit:cover;border-radius:50%;width:100%;height:100%}.section-heading{margin-bottom:32px}.about h2,.contact h2,.section-heading h2{letter-spacing:-.03em;margin-top:16px;font-size:clamp(36px,4vw,48px)}.contact>p,.section-heading p{color:var(--muted);margin-top:16px}.project-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;align-items:flex-start;padding:24px;transition:transform .2s,border-color .2s;display:flex}.project-card:hover{border-color:var(--accent);transform:translateY(-4px)}.project-card h3{margin-top:24px;font-size:24px}.project-card p{color:var(--muted);margin-top:16px}.project-card .project-contribution{font-size:14px}.project-badges{flex-wrap:wrap;gap:8px;display:flex}.project-status{border:1px solid var(--border);color:var(--text);border-radius:999px;align-items:center;padding:8px 16px;font-size:12px;font-weight:600;display:inline-flex}.project-card-featured{border-color:var(--accent);grid-column:1/-1}.project-card .tags{margin-top:auto;padding-top:24px}.project-preview{aspect-ratio:8/5;border:1px solid var(--border);background:var(--about);width:100%;color:var(--muted);border-radius:10px;place-items:center;margin-bottom:24px;font-size:14px;display:grid;overflow:hidden}.project-preview img{object-fit:cover;width:100%;height:100%;display:block}.preview-placeholder{color:var(--muted);justify-items:center;gap:8px;display:grid}.preview-art{width:clamp(72px,12vw,112px);color:var(--accent);opacity:.8;transition:transform .25s;transform:rotate(-3deg)}.project-card:hover .preview-art{transform:rotate(0)translateY(-4px)}.project-actions{flex-wrap:wrap;gap:8px 24px;display:flex}.project-link{color:var(--accent);margin-top:24px;font-weight:700}.project-link:hover{text-decoration:underline}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-link{color:var(--accent);margin-top:32px;font-weight:700;display:inline-block}.timeline{border-left:1px solid var(--border);margin-left:8px}.timeline-item{grid-template-columns:1fr 1.5fr;gap:32px;padding:0 0 32px 32px;display:grid;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";background:var(--accent);border-radius:50%;width:11px;height:11px;position:absolute;top:6px;left:-6px}.timeline-item h3{font-size:22px}.timeline-item .timeline-period{color:var(--muted);margin-top:8px;font-size:14px}.timeline-item p{color:var(--muted)}.about{background:var(--about);grid-template-columns:1fr 1.4fr;gap:48px;padding:48px}.about p{color:var(--muted)}.about p+p{margin-top:16px}.contact{text-align:center;padding-bottom:96px}.contact-links{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:32px;display:flex}.footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;gap:16px;padding-block:32px;font-size:14px;display:flex}.footer strong{color:var(--text);font-family:Georgia,serif;font-size:18px}.footer-role{margin-left:16px}@media (max-width:1000px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.container{width:calc(100% - 32px)}.header-inner{flex-wrap:wrap;gap:16px;min-height:72px;padding-block:16px}.brand{margin-right:auto;font-size:20px}nav{order:3;justify-content:space-between;gap:8px;width:100%;font-size:13px}.hero{grid-template-columns:1fr;gap:32px;padding-block:64px}.portrait-wrap{grid-row:1;justify-self:center;width:240px}.hero-copy{text-align:center}.hero-copy .tags{justify-content:center}h1{font-size:48px}.intro{font-size:16px}.section{padding-block:48px}.project-grid{grid-template-columns:1fr}.project-card{padding:24px}.timeline-item{gap:8px;padding-left:24px}.about,.timeline-item{grid-template-columns:1fr}.about{gap:24px;padding:24px}.footer{flex-direction:column}.footer-role{margin:8px 0 0;display:block}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important}}.header{z-index:20;background:var(--bg);position:sticky;top:0}.brand{align-items:center;display:inline-flex}.book{flex:none;width:32px;height:32px}.hero{padding-block:64px}.hero h1{padding-bottom:8px;display:inline-block;position:relative}.hero h1:after{content:"";background:var(--accent);opacity:.9;transform-origin:0;width:88%;height:16px;animation:draw-underline .8s ease-out both;position:absolute;bottom:-4px;left:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 16' preserveAspectRatio='none'%3E%3Cpath d='M2 11 C80 5 155 8 225 8 S337 7 398 5 C340 10 289 11 224 10 S78 9 2 13Z' fill='black'/%3E%3C/svg%3E") 0/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 16' preserveAspectRatio='none'%3E%3Cpath d='M2 11 C80 5 155 8 225 8 S337 7 398 5 C340 10 289 11 224 10 S78 9 2 13Z' fill='black'/%3E%3C/svg%3E") 0/100% 100% no-repeat}.eyebrow{background:linear-gradient(105deg,var(--accent-soft),var(--accent-soft))}@supports (color:color-mix(in lab,red,red)){.eyebrow{background:linear-gradient(105deg,var(--accent-soft),color-mix(in srgb,var(--accent-soft) 75%,transparent))}}.eyebrow{border-radius:999px}.portrait-wrap{background:linear-gradient(145deg,var(--accent-soft),var(--surface));transition:transform .35s,border-color .35s;position:relative}.portrait-wrap:after{content:"";border:1px solid var(--accent);opacity:.28;pointer-events:none;border-radius:50%;position:absolute;inset:3px}nav a{position:relative}nav a:after{content:"";background:var(--accent);transform-origin:0;border-radius:50%;height:2px;transition:transform .2s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}nav a:focus-visible:after,nav a:hover:after,nav a[aria-current=location]:after{transform:scaleX(1)}@keyframes draw-underline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero-phrase{margin-top:16px}.section{padding-block:48px}.contact{padding-bottom:64px}@media (max-width:700px){html{scroll-padding-top:152px}.hero{padding-block:48px}.section{padding-block:32px}.contact{padding-bottom:48px}}@media (prefers-reduced-motion:reduce){.hero h1:after{animation:none}.portrait-wrap:hover{transform:none}}.portrait-wrap{aspect-ratio:auto;isolation:isolate;background:#fff9ef;border:1px solid #c5ad99;border-radius:4px;padding:16px 16px 48px;transform:rotate(-3deg);box-shadow:0 12px 32px #23132826,0 2px 6px #2313281a}.portrait{aspect-ratio:1;object-position:center 28%;border:1px solid #ddc6dc;border-radius:1px;height:auto;display:block}.portrait-wrap:after{display:none}.portrait-wrap:hover{border-color:#ad8d77;transform:translateY(-4px)rotate(-1deg)}.portrait-tape{z-index:2;color:#fff;opacity:.93;clip-path:polygon(2% 0,97% 3%,94% 19%,100% 36%,96% 55%,100% 75%,97% 100%,1% 98%,5% 78%,0 60%,4% 38%,0 18%);background:repeating-linear-gradient(135deg,#a96cba 0 8px,#b681c2 8px 16px);place-items:center;width:80px;height:32px;font-family:Georgia,serif;font-size:24px;line-height:1;top:-12px;left:24px;transform:rotate(-7deg)}.portrait-tabs,.portrait-tape{display:grid;position:absolute}.portrait-tabs{z-index:-1;gap:8px;top:48px;right:-28px}.portrait-tabs span{color:#4f215e;background:#eed9f2;border:1px solid #9a6ca2;border-radius:0 8px 8px 0;place-items:center;width:40px;height:40px;font-size:20px;display:grid;box-shadow:1px 2px 4px #2313281a}.portrait-signature{color:#754080;font-family:Georgia,serif;font-size:32px;line-height:1;position:absolute;bottom:4px;right:24px;transform:rotate(8deg)}@media (prefers-reduced-motion:reduce){.portrait-wrap:hover{transform:rotate(-3deg)}}main{overflow-x:clip}.hero,.section{min-height:calc(100svh - 88px);padding-block:64px;position:relative}.section{flex-direction:column;justify-content:center;display:flex}main>section:not(:last-child):after{content:"";background:var(--accent);opacity:.3;pointer-events:none;width:100vw;height:24px;position:absolute;bottom:0;left:50%;transform:translate(-50%);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='24' viewBox='0 0 240 24'%3E%3Cpath d='M0 13 L12 12 L20 14 L31 11 L41 13 L53 10 L64 12 L75 10 L87 13 L99 11 L111 13 L123 10 L134 12 L146 9 L158 12 L170 10 L182 13 L194 11 L205 13 L216 10 L228 12 L240 13' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E") 50%/240px 24px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='24' viewBox='0 0 240 24'%3E%3Cpath d='M0 13 L12 12 L20 14 L31 11 L41 13 L53 10 L64 12 L75 10 L87 13 L99 11 L111 13 L123 10 L134 12 L146 9 L158 12 L170 10 L182 13 L194 11 L205 13 L216 10 L228 12 L240 13' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E") 50%/240px 24px repeat-x}@media (max-width:700px){.hero,.section{min-height:calc(100svh - 152px);padding-block:48px}}.chapter-kicker{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;font-size:12px;display:block}.chapter-heading{border-left:3px solid var(--accent);background:var(--about);border-radius:0 16px 16px 0;padding:24px 72px 24px 24px;position:relative}.chapter-heading h2{margin-top:8px}.chapter-tab{width:32px;height:64px;color:var(--button-text);background:var(--accent);clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%);place-items:start center;padding-top:8px;font-size:12px;font-weight:700;display:grid;position:absolute;top:0;right:32px}.project-card{position:relative;box-shadow:0 8px 24px #2313280d}.project-card:before{content:"";background:var(--accent);opacity:.55;border-radius:0 0 4px 4px;width:48px;height:4px;position:absolute;top:0;left:32px}.timeline-paper{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:32px;box-shadow:0 12px 32px #2313280f}.timeline-paper-label{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:24px;font-size:12px;font-weight:700;display:block}.about{border:1px solid var(--border);background:var(--surface);border-radius:16px;grid-template-columns:.9fr 1.1fr;gap:0;padding:0;display:grid;position:relative;overflow:hidden;box-shadow:0 16px 48px #23132814}.about-opening,.about-story{padding:48px;position:relative}.about-opening{background:var(--about);border-right:1px solid var(--border);flex-direction:column;align-items:flex-start;display:flex}.about .about-lead{max-width:300px;color:var(--text);margin-top:24px;font-family:Georgia,serif;font-size:clamp(22px,2.3vw,30px);font-style:italic;line-height:1.35}.about-note{border-left:2px solid var(--accent);background:var(--surface);max-width:320px;margin-top:48px;padding:16px 24px;transform:rotate(-1deg)}.about-note-label{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700}.about-note p{margin-top:8px;font-size:14px}.about-page-number{color:var(--muted);letter-spacing:.1em;margin-top:32px;font-size:12px;display:block}.about-story .about-page-number{text-align:right}.about-bookmark{background:var(--accent);width:32px;height:64px;color:var(--button-text);clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%);place-items:start center;padding-top:8px;display:grid;position:absolute;top:0;right:32px}.about-story>p{padding-right:24px}.about-principles{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px;padding-top:24px;display:grid}.about-principles span,.about-principles strong{display:block}.about-principles strong{font-family:Georgia,serif;font-size:16px}.about-principles span{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.5}.contact-card{border:1px solid var(--border);background:var(--about);border-radius:16px;width:100%;padding:64px 32px;position:relative;overflow:hidden}.contact-card h2{margin-top:16px}.contact-card>p{color:var(--muted);margin-top:16px}.contact-card .contact-note{color:var(--accent);font-family:Georgia,serif;font-size:18px;font-style:italic}.contact-stamp{color:var(--accent);opacity:.6;font-size:32px;line-height:1;position:absolute;top:24px;right:32px}@media (max-width:700px){.chapter-heading{padding:24px 56px 24px 16px}.chapter-tab{right:16px}.timeline-paper{padding:24px 16px}.about{grid-template-columns:1fr}.about-opening,.about-story{padding:32px 24px}.about-story{padding-top:72px}.about-opening{border-right:0;border-bottom:1px solid var(--border)}.about-note{margin-top:24px}.about-principles{grid-template-columns:1fr;gap:16px}.about-principles span{margin-top:4px}.contact-card{padding:64px 24px 48px}.contact-stamp{top:16px;right:24px}}