.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Times Local;src:url(/times.woff) format("woff");font-display:swap}@font-face{font-family:Roboto Local;src:url(/latin-roboto.woff2) format("woff2");font-display:swap}@font-face{font-family:Comic Local;src:url(/comic-sans.woff) format("woff");font-display:swap}:root{color-scheme:light;--ink: #17151c;--muted-ink: #585465;--blue: #263796;--pink: #b85e9e;--paper: #f5f3f1;--line: rgba(28, 25, 38, .2);--sans: "Roboto Local", Arial, sans-serif;--serif: "Times New Roman", "Times Local", Times, serif;font-family:var(--serif);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:20rem;min-height:100%;background:var(--paper)}body{position:relative;isolation:isolate;min-height:100vh;margin:0;overflow-x:hidden}body:before{position:fixed;z-index:-2;inset:-3vh -3vw;content:"";background-image:var(--background-small);background-position:center top;background-repeat:no-repeat;background-size:cover;opacity:.88;transform:scale(1.04);animation:background-breathe 28s ease-in-out infinite alternate}body:after{position:fixed;z-index:-1;inset:0;pointer-events:none;content:"";background:linear-gradient(90deg,rgba(250,249,246,.3),transparent 38%),radial-gradient(circle at 54% 45%,transparent 0 36%,rgba(250,249,246,.12) 76%)}img,picture,video,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration-thickness:.06em;text-underline-offset:.16em}::selection{color:#fff;background:var(--blue)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-shell{display:grid;grid-template-columns:minmax(0,1fr);min-height:100vh;gap:1.75rem;width:min(100% - 2rem,82rem);margin-inline:auto;padding-block:1.1rem 5rem}.site-sidebar{position:relative;z-index:20}.site-navigation{display:grid;gap:.7rem}.site-name{width:fit-content;color:var(--blue);font-size:clamp(2rem,8vw,2.65rem);line-height:.95;text-decoration:none;letter-spacing:-.035em}.site-name.active{font-style:italic}.site-index{border-block:1px solid var(--line)}.site-index summary{display:flex;align-items:center;justify-content:space-between;padding-block:.75rem;font-family:var(--sans);font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;list-style:none}.site-index summary::-webkit-details-marker{display:none}.index-toggle{font-size:1.15rem;line-height:1;transition:transform .18s ease}.site-index[open] .index-toggle{transform:rotate(45deg)}.project-index{display:grid;gap:.18rem;padding:0 0 .85rem;margin:0;list-style:none}.project-link{position:relative;display:grid;grid-template-columns:2.1rem minmax(0,1fr);align-items:baseline;padding-block:.22rem;color:var(--ink);font-family:var(--sans);font-size:.78rem;font-variation-settings:"wght" 390;line-height:1.35;text-decoration:none;transition:color .15s ease,transform .15s ease}.project-link:hover,.project-link.active{color:var(--blue);transform:translate(.18rem)}.project-link.active{font-variation-settings:"wght" 650}.project-number{color:var(--muted-ink);font-size:.62rem;letter-spacing:.08em}.nav-preview{display:none}.about-link{width:fit-content;font-size:1.35rem;text-decoration:none}.about-link:before{content:"("}.about-link:after{content:")"}.about-link:hover,.about-link.active{color:var(--pink);font-family:Comic Local,Comic Sans MS,cursive}.camera-text{max-width:16rem;min-height:3.8rem;margin:1.35rem 0 0;color:var(--muted-ink);font-size:.88rem;line-height:1.45}.camera-text strong{color:var(--ink);font-family:var(--sans);font-style:italic}.visitor-map{width:12.5rem;height:12.5rem;margin-top:1.25rem;overflow:hidden}.visitor-map canvas,.visitor-map iframe{max-width:100%;max-height:100%}.type-cursor{display:inline-block;width:1px;height:.9em;margin-left:.18em;background:currentColor;animation:cursor-blink .75s steps(1) infinite}.site-main{min-width:0}.site-watermark{position:fixed;z-index:30;right:-1.9rem;bottom:-.7rem;width:clamp(6.5rem,12vw,10rem);opacity:.34;pointer-events:none;transition:opacity .18s ease}.home-tree{position:relative;min-height:min(72rem,78vh)}.tree-instruction{position:absolute;z-index:4;top:.25rem;right:0;margin:0;color:var(--muted-ink);font-family:var(--sans);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase}.photo-tree-frame{position:relative;width:100%;min-height:32rem;border-radius:1.1rem;transition:background .7s ease,box-shadow .7s ease}.photo-tree-frame--night{background:radial-gradient(circle at 15% 17%,rgba(104,121,184,.22),transparent 25%),radial-gradient(circle at 72% 36%,rgba(68,57,127,.18),transparent 38%),linear-gradient(165deg,#0e132af7,#1a1b39f0 57%,#241b32e6);box-shadow:inset 0 0 5rem #080b1d5c}.weather-controls{position:absolute;z-index:6;top:2rem;right:0;display:flex;flex-wrap:wrap;justify-content:flex-end;width:min(100%,26rem);gap:.55rem}.weather-button{position:relative;display:grid;width:2.7rem;height:2.7rem;padding:0;border:1px solid rgba(48,48,92,.18);border-radius:50%;color:var(--ink);background:#f8f7f49e;box-shadow:0 .45rem 1.4rem #27234414;cursor:pointer;place-items:center;transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease;backdrop-filter:blur(8px)}.weather-button span{display:block;font-size:1.35rem;line-height:1;transform:translate(-.03rem)}.weather-button:hover{background:#f8f7f4e6;box-shadow:0 .65rem 1.8rem #27234424;transform:rotate(-7deg) scale(1.06)}.weather-button:active{transform:rotate(6deg) scale(.94)}.weather-button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.tornado-button:hover{box-shadow:0 .65rem 1.9rem #b85e9e30;transform:rotate(15deg) scale(1.08)}.christmas-button:after,.sakura-button:after,.night-button:after,.rain-button:after,.water-button:after,.magic-button:after{position:absolute;right:.12rem;bottom:.12rem;width:.48rem;height:.48rem;border:2px solid rgba(248,247,244,.95);border-radius:50%;content:"";background:#a9a6ad;transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease}.christmas-button[aria-pressed=true]{border-color:#d2a746cc;background:#18533eeb;box-shadow:0 0 0 3px #d2a74633,0 .7rem 2rem #173f3240;transform:translateY(-1px)}.christmas-button[aria-pressed=true]:after{background:#f5c451;box-shadow:0 0 .55rem #f5c451e6;transform:scale(1.12)}.christmas-button[aria-pressed=true] span{animation:christmas-button-glow 1.8s ease-in-out infinite alternate}.sakura-button[aria-pressed=true]{border-color:#c26f91d1;background:#f7dae4f0;box-shadow:0 0 0 3px #c26f9129,0 .7rem 2rem #70445f33;transform:translateY(-1px)}.sakura-button[aria-pressed=true]:after{background:#c85d8a;box-shadow:0 0 .55rem #c85d8ac7;transform:scale(1.12)}.sakura-button[aria-pressed=true] span{animation:sakura-button-bloom 1.9s ease-in-out infinite alternate}.night-button[aria-pressed=true]{border-color:#b6c4ffa8;background:#272e5bf0;box-shadow:0 0 0 3px #8497e229,0 .7rem 2rem #1f23524d}.night-button[aria-pressed=true]:after{background:#d9ddff;box-shadow:0 0 .6rem #d9ddffe6}.rain-button[aria-pressed=true]{border-color:#5c8eb9b8;background:#bddbecf0;box-shadow:0 0 0 3px #5c8eb924}.rain-button[aria-pressed=true]:after{background:#4e91bd;box-shadow:0 0 .55rem #4e91bdc7}.water-button[aria-pressed=true]{border-color:#409dbbb8;background:#caf1f4f5;box-shadow:0 0 0 4px #53c0c629}.water-button[aria-pressed=true]:after{background:#47bcc6;box-shadow:0 0 .55rem #47bcc6d9}.magic-button[aria-pressed=true]{border-color:#9d6fcdb8;background:#e8d7f8f5;box-shadow:0 0 0 4px #9d6fcd26}.magic-button[aria-pressed=true]:after{background:#9c64cf;box-shadow:0 0 .6rem #9c64cfd6}:where(.photo-tree-frame--night) .weather-button{border-color:#d6dcff40;background:#181e3fb3;box-shadow:0 .45rem 1.4rem #04061438}.photo-tree{width:100%;height:auto;min-height:32rem;overflow:visible}.moonlight-scene{opacity:0;animation:moonlight-arrive 1.1s ease-out forwards}.moon-halo{fill:#bcc9ff1a;filter:url(#christmas-glow)}.moon-disc{fill:#e4e5ff;filter:url(#christmas-glow)}.moon-shadow{fill:#11162f}.night-stars circle{fill:#e6e8ff;filter:url(#christmas-glow);transform-box:fill-box;transform-origin:center;animation:night-star-twinkle 2.6s ease-in-out infinite alternate}.night-stars circle:nth-child(3n+2){animation-delay:-.9s}.night-stars circle:nth-child(3n){animation-delay:-1.8s}.photo-tree--night:not(.photo-tree--christmas):not(.photo-tree--sakura) .tree-trunk,.photo-tree--night:not(.photo-tree--christmas):not(.photo-tree--sakura) .tree-branches path{stroke:url(#sakura-tree-gradient)}.photo-tree--night:not(.photo-tree--christmas):not(.photo-tree--sakura) .photo-mat{fill:#ebecf9f2;stroke:#aebcf0ad}.photo-tree--night .leaf-number{fill:#393b61}.fireflies{pointer-events:none}.fireflies circle{fill:#f3dd77;filter:url(#christmas-glow);opacity:0;transform-box:fill-box;transform-origin:center;animation:firefly-drift var(--firefly-duration, 4s) ease-in-out var(--firefly-delay, 0s) infinite}.tree-trunk,.tree-branches path{fill:none;stroke:url(#trunk-gradient);stroke-linecap:round}.tree-trunk{stroke-width:18}.photo-tree--christmas .tree-trunk,.photo-tree--christmas .tree-branches path{stroke:url(#christmas-tree-gradient)}.photo-tree--christmas .branch-joints circle{fill:#d2a746}.photo-tree--christmas .photo-mat{filter:url(#christmas-glow);stroke:#bd3440;stroke-width:2.2}.photo-tree--christmas .photo-leaf-position:nth-child(3n+2) .photo-mat{stroke:#24704f}.photo-tree--christmas .photo-leaf-position:nth-child(3n) .photo-mat{stroke:#d2a746}.christmas-decorations{pointer-events:none;transform-box:fill-box;transform-origin:center bottom;animation:christmas-arrive .72s cubic-bezier(.2,.75,.2,1) both}.christmas-garlands path{fill:none;stroke:#d2a746d1;stroke-dasharray:3 8;stroke-linecap:round;stroke-width:2.5}.christmas-lights circle{fill:#f2c14e;filter:url(#christmas-glow);transform-box:fill-box;transform-origin:center;animation:christmas-twinkle 1.45s ease-in-out infinite alternate}.christmas-lights circle:nth-child(4n+2){fill:#c63645;animation-delay:-.48s}.christmas-lights circle:nth-child(4n+3){fill:#4d70c8;animation-delay:-.92s}.christmas-lights circle:nth-child(4n){fill:#4d9b69;animation-delay:-1.2s}.christmas-ornaments circle{fill:#b82e3c;filter:url(#christmas-glow);stroke:#ffefb7e6;stroke-width:1.5;transform-box:fill-box;transform-origin:50% 0;animation:ornament-breathe 2.4s ease-in-out infinite alternate}.christmas-ornaments circle:nth-child(2n){fill:#d2a746;animation-delay:-1.1s}.christmas-ornaments circle:nth-child(3){fill:#2f7658;animation-delay:-.6s}.christmas-star path{fill:#f4c856;filter:url(#christmas-glow);stroke:#fff7cdf2;stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:christmas-star-pulse 1.7s ease-in-out infinite alternate}.photo-tree--sakura .tree-trunk,.photo-tree--sakura .tree-branches path{stroke:url(#sakura-tree-gradient)}.photo-tree--sakura .branch-joints circle{fill:#c26f91}.photo-tree--sakura .photo-mat{fill:#fff9fbf5;stroke:#d68eaa;stroke-width:2}.photo-tree--sakura .photo-leaf-position:nth-child(2n) .photo-mat{stroke:#a85c82}.sakura-decorations{pointer-events:none;transform-box:fill-box;transform-origin:center bottom;animation:sakura-arrive .9s cubic-bezier(.2,.72,.2,1) both}.sakura-blossom{filter:url(#christmas-glow);transform-box:fill-box;transform-origin:center;animation:sakura-blossom-breathe 3.2s ease-in-out var(--blossom-delay, 0s) infinite alternate}.sakura-blossom ellipse{fill:#f5b9cf;stroke:#fff4f8eb;stroke-width:.8}.sakura-blossom ellipse:nth-child(2n){fill:#e99ab8}.sakura-blossom circle{fill:#f2cf75;stroke:#fff9daeb;stroke-width:.8}.sakura-falling-petals path{fill:#eda5bf;opacity:0;transform-box:fill-box;transform-origin:center;animation:sakura-petal-fall 6.4s ease-in-out var(--petal-delay, 0s) infinite}.tree-crown{transform-box:fill-box;transform-origin:50% 100%;animation:crown-breathe 10.8s ease-in-out infinite}.tree-crown--windy{animation:crown-gust var(--wind-duration, 1.9s) cubic-bezier(.22,.72,.22,1) both}.tree-crown--windy .photo-leaf{animation:leaf-gust var(--wind-duration, 1.9s) var(--wind-leaf-delay, 0s) cubic-bezier(.22,.72,.22,1) both}.tree-crown--tornado{animation:crown-tornado var(--tornado-duration, 3.2s) cubic-bezier(.35,.05,.2,1) both}.tree-crown--tornado .photo-leaf{animation:leaf-tornado var(--tornado-duration, 3.2s) var(--tornado-delay, 0s) cubic-bezier(.3,.02,.18,1) both}.tornado-vortex{opacity:0;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:vortex-arrive var(--tornado-duration, 3.2s) ease-in-out both}.tornado-vortex path{fill:none;stroke:url(#trunk-gradient);stroke-dasharray:26 18;stroke-linecap:round;stroke-width:2.2;animation:vortex-trace .72s linear infinite}.tornado-vortex path:nth-child(2){opacity:.74;stroke-width:1.8;animation-direction:reverse}.tornado-vortex path:nth-child(3){opacity:.55;stroke-width:1.5}.tornado-vortex path:nth-child(4){opacity:.38;stroke-width:1.2;animation-direction:reverse}.rain-curtain{pointer-events:none}.rain-curtain line{stroke:rgba(115,168,207,var(--rain-opacity, .5));stroke-linecap:round;stroke-width:2.2;animation:rain-fall var(--rain-duration, .9s) linear var(--rain-delay, 0s) infinite}.rain-puddle{fill:#5b94be14;stroke:#5b94be61;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:rain-puddle-ripple 2.4s ease-out infinite}.photo-tree--rain .photo-mat{stroke-width:2;filter:url(#leaf-shadow) saturate(.88) contrast(1.06)}.growth-flow,.magic-sparkles{pointer-events:none}.growth-trunk-flow,.growth-branch-flow path{fill:none;stroke:#63d2c3;stroke-dasharray:1;stroke-dashoffset:1;stroke-linecap:round;filter:url(#christmas-glow)}.growth-trunk-flow{stroke-width:8;animation:growth-line-rise 1.25s ease-out forwards}.growth-branch-flow path{stroke-width:4;animation:growth-line-rise 1.2s ease-out var(--growth-branch-delay, .8s) forwards}.growth-buds circle{fill:#8ee7c040;filter:url(#christmas-glow);opacity:0;transform-box:fill-box;transform-origin:center;animation:growth-bud-pop 1.15s ease-out var(--growth-bud-delay, 1.4s) both}.water-splash ellipse{fill:#56c1cd2e;stroke:#56c1cd8c;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:water-puddle 2.2s ease-out both}.water-splash path{fill:none;stroke:#62c8d1;stroke-linecap:round;stroke-width:3;transform-box:fill-box;transform-origin:bottom;animation:water-splash-up .85s ease-out both}.tree-crown--growing .photo-leaf{animation:leaf-grow 2.5s ease-out var(--growth-delay, 1s) both}.tree-crown--floating .photo-leaf{animation:leaf-zero-gravity 4.1s ease-in-out var(--magic-delay, 0s) both}.tree-crown--floating .tree-branches,.tree-crown--floating .branch-joints{animation:magic-branches-dim 4.1s ease-in-out both}.magic-sparkles path{fill:#d8b8f4;filter:url(#christmas-glow);opacity:0;transform-box:fill-box;transform-origin:center;animation:magic-sparkle 1.8s ease-in-out var(--spark-delay, 0s) 2}.tree-branches path{opacity:.78}.tree-branches .empty-branch{opacity:.34}.branch-joints circle{fill:var(--blue);opacity:.72}.photo-leaf-position{cursor:grab;touch-action:none}.photo-leaf-position:active{cursor:grabbing}.photo-leaf{transform:rotate(var(--leaf-rotation)) scale(var(--leaf-scale, 1));transform-box:fill-box;transform-origin:50% 100%;animation:leaf-sway var(--idle-duration, 9.5s) ease-in-out var(--leaf-delay) infinite}.photo-mat{fill:#fbfaf6f2;filter:url(#leaf-shadow);stroke:#2637962e}.leaf-number{fill:var(--muted-ink);font-family:var(--sans);font-size:8px;letter-spacing:.08em}.leaf-label{opacity:0;pointer-events:none;transform:translateY(5px);transition:opacity .16s ease,transform .16s ease}.leaf-label rect{fill:#f8f7f4f0;stroke:#26379640}.leaf-label text{fill:var(--ink);font-family:var(--sans);font-size:9px}.photo-leaf:hover .leaf-label,.photo-leaf:focus .leaf-label{opacity:1;transform:translateY(0)}.project-page,.about-page{padding-block:1.2rem 6rem}.project-header,.about-header{max-width:50rem;margin-bottom:clamp(2.5rem,7vw,5.5rem)}.section-label{margin:0 0 .75rem;color:var(--blue);font-family:var(--sans);font-size:.7rem;letter-spacing:.17em;text-transform:uppercase}.project-header h1,.about-header h1{max-width:16ch;margin:0;font-size:clamp(3.1rem,8vw,7.2rem);font-weight:400;line-height:.87;letter-spacing:-.055em}.project-meta{display:grid;gap:.35rem;max-width:36rem;padding-top:1.4rem;margin-top:1.8rem;border-top:1px solid var(--line);color:var(--muted-ink);font-family:var(--sans);font-size:.78rem;line-height:1.5}.project-meta p{margin:0}.project-date a{color:var(--blue)}.prose{max-width:58ch;color:#24202b;font-size:clamp(1.05rem,1.8vw,1.28rem);line-height:1.82}.prose p{margin:0 0 1.35em}.prose em{font-style:italic}.prose a{color:var(--blue)}.project-story{margin-left:clamp(0rem,8vw,7rem);margin-bottom:clamp(3.5rem,9vw,8rem);padding:1.25rem 1.4rem .1rem;background:linear-gradient(90deg,#faf9f69e,#faf9f626)}.video-frame{width:min(100%,62rem);margin-bottom:clamp(3.5rem,8vw,7rem)}.video-frame iframe{display:block;width:100%;aspect-ratio:16 / 9;border:0}.photo-sequence{display:flex;flex-direction:column;gap:clamp(2.5rem,8vw,8rem)}.photo-frame{position:relative;width:100%;margin:0}.photo-frame img{width:100%;height:auto;background:#ffffff47}.photo-open{display:block;width:100%;padding:0;color:inherit;background:transparent;border:0;cursor:zoom-in}.photo-open picture,.photo-open img{width:100%}.photo-open:focus-visible{outline:2px solid var(--blue);outline-offset:.35rem}.photo-frame figcaption{position:absolute;top:100%;right:0;padding-top:.45rem;color:var(--muted-ink);font-family:var(--sans);font-size:.62rem;letter-spacing:.1em}.photo-frame-2,.photo-frame-4{width:min(76%,47rem)}.photo-frame-2{align-self:flex-end}.photo-frame-3{width:min(88%,57rem);align-self:center}.photo-lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;overflow:hidden;color:#fff;background:#0c0b10f5;border:0}.photo-lightbox::backdrop{background:#0c0b10c2;backdrop-filter:blur(.5rem)}.lightbox-toolbar{position:absolute;z-index:2;top:0;right:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;font-family:var(--sans);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.lightbox-count{margin:0}.lightbox-close,.lightbox-previous,.lightbox-next{color:inherit;background:transparent;border:0;cursor:pointer}.lightbox-close{padding:.5rem;text-transform:uppercase}.lightbox-previous,.lightbox-next{position:absolute;z-index:2;top:50%;width:3.5rem;height:4.5rem;font-family:var(--sans);font-size:1.5rem;transform:translateY(-50%)}.lightbox-previous{left:0}.lightbox-next{right:0}.lightbox-image{width:100%;height:100%;padding:4rem 4.5rem 2rem;object-fit:contain}.profile-collage{position:relative;display:grid;grid-template-columns:1.05fr .78fr;align-items:start;max-width:58rem;margin-bottom:clamp(4rem,10vw,9rem)}.profile-collage img{width:100%;height:auto}.profile-collage img:nth-child(2){z-index:2;margin-top:28%;margin-left:-14%;transform:rotate(2.2deg);box-shadow:0 1.4rem 3rem #27234429}.about-copy{margin-left:clamp(0rem,10vw,8rem);padding:1.25rem 1.4rem .1rem;background:linear-gradient(90deg,#faf9f6a3,#faf9f61a)}.not-found{display:grid;align-content:center;max-width:52rem;min-height:min(42rem,78vh);padding-bottom:7rem}.not-found h1{max-width:10ch;margin:0;font-size:clamp(4rem,11vw,9rem);font-weight:400;line-height:.82;letter-spacing:-.065em}.not-found>p:not(.section-label){max-width:32rem;margin:2rem 0 1.25rem clamp(0rem,7vw,6rem);color:var(--muted-ink);font-size:1.08rem;line-height:1.6}.not-found>a{width:fit-content;margin-left:clamp(0rem,7vw,6rem);color:var(--blue);font-family:var(--sans);font-size:.78rem;letter-spacing:.11em;text-transform:uppercase}@keyframes cursor-blink{50%{opacity:0}}@keyframes background-breathe{0%{transform:scale(1.04) translate3d(-.4%,-.3%,0)}to{transform:scale(1.065) translate3d(.55%,.45%,0)}}@keyframes leaf-sway{0%,to{transform:translateY(0) rotate(calc(var(--leaf-rotation) - var(--idle-sway, .45deg))) scale(var(--leaf-scale, 1))}46%{transform:translateY(calc(var(--idle-lift, 1px) * -1)) rotate(calc(var(--leaf-rotation) + var(--idle-sway, .45deg))) scale(var(--leaf-scale, 1))}72%{transform:translateY(var(--idle-lift-settle, -.35px)) rotate(calc(var(--leaf-rotation) + var(--idle-sway-settle, .16deg))) scale(var(--leaf-scale, 1))}}@keyframes crown-breathe{0%,to{transform:rotate(-.24deg) translate3d(-1.8px,.5px,0)}48%{transform:rotate(.31deg) translate3d(2.6px,-1px,0)}73%{transform:rotate(.08deg) translate3d(.7px,-.3px,0)}}@keyframes crown-gust{0%{transform:rotate(0) skew(0) translate(0)}18%{transform:rotate(var(--wind-rotate-peak, 2.8deg)) skew(var(--wind-skew-peak, -1.8deg)) translate(var(--wind-shift-peak, 13px))}43%{transform:rotate(var(--wind-rotate-mid, 1.4deg)) skew(var(--wind-skew-mid, -.7deg)) translate(var(--wind-shift-mid, 7px))}64%{transform:rotate(var(--wind-rotate-rebound, -.65deg)) skew(var(--wind-skew-rebound, .35deg)) translate(var(--wind-shift-rebound, -3px))}82%{transform:rotate(var(--wind-rotate-settle, .25deg)) skew(var(--wind-skew-settle, -.12deg)) translate(var(--wind-shift-settle, 1px))}to{transform:rotate(0) skew(0) translate(0)}}@keyframes leaf-gust{0%{transform:rotate(var(--leaf-rotation)) scale(var(--leaf-scale, 1))}22%{transform:rotate(calc(var(--leaf-rotation) + var(--wind-leaf-peak, 8deg))) scale(var(--leaf-scale, 1))}48%{transform:rotate(calc(var(--leaf-rotation) + var(--wind-leaf-mid, 3deg))) scale(var(--leaf-scale, 1))}68%{transform:rotate(calc(var(--leaf-rotation) + var(--wind-leaf-rebound, -2deg))) scale(var(--leaf-scale, 1))}84%{transform:rotate(calc(var(--leaf-rotation) + var(--wind-leaf-settle, .8deg))) scale(var(--leaf-scale, 1))}to{transform:rotate(var(--leaf-rotation)) scale(var(--leaf-scale, 1))}}@keyframes crown-tornado{0%{transform:rotate(0) skew(0) translate(0) scaleX(1)}14%{transform:rotate(var(--tornado-settle, 1deg)) skew(-.7deg) translate(4px) scaleX(.99)}31%{transform:rotate(var(--tornado-twist, 6.2deg)) skew(-3.4deg) translate(var(--tornado-shift, 23px)) scaleX(.94)}52%{transform:rotate(var(--tornado-counter, -3.1deg)) skew(2.1deg) translate(var(--tornado-counter-shift, -12px)) scaleX(1.035)}70%{transform:rotate(var(--tornado-settle, 1deg)) skew(-.8deg) translate(5px) scaleX(.985)}84%{transform:rotate(var(--tornado-rebound, -.58deg)) skew(.3deg) translate(-2px) scaleX(1.008)}to{transform:rotate(0) skew(0) translate(0) scaleX(1)}}@keyframes leaf-tornado{0%{opacity:1;transform:translate(0) rotate(var(--leaf-rotation)) scale(var(--leaf-scale, 1))}18%{transform:translate(var(--tornado-x1),var(--tornado-y1)) rotate(calc(var(--leaf-rotation) + var(--tornado-r1))) scale(var(--leaf-scale, 1))}39%{opacity:.9;transform:translate(var(--tornado-x2),var(--tornado-y2)) rotate(calc(var(--leaf-rotation) + var(--tornado-r2))) scale(var(--leaf-scale, 1))}60%{opacity:.96;transform:translate(var(--tornado-x3),var(--tornado-y3)) rotate(calc(var(--leaf-rotation) + var(--tornado-r3))) scale(var(--leaf-scale, 1))}78%{transform:translate(var(--tornado-x1),var(--tornado-y1)) rotate(calc(var(--leaf-rotation) + var(--tornado-r1))) scale(var(--leaf-scale, 1))}to{opacity:1;transform:translate(0) rotate(var(--leaf-rotation)) scale(var(--leaf-scale, 1))}}@keyframes vortex-arrive{0%,to{opacity:0;transform:rotate(0) scale(.78)}18%{opacity:.2}46%{opacity:.46;transform:rotate(var(--tornado-vortex-turn, 8deg)) scale(1.03)}76%{opacity:.22}}@keyframes vortex-trace{to{stroke-dashoffset:-88}}@keyframes christmas-button-glow{0%{filter:brightness(1);transform:translate(-.03rem) scale(1)}to{filter:brightness(1.18);transform:translate(-.03rem) scale(1.08)}}@keyframes christmas-arrive{0%{opacity:0;transform:translateY(-12px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes christmas-twinkle{0%{opacity:.48;transform:scale(.78)}to{opacity:1;transform:scale(1.16)}}@keyframes ornament-breathe{0%{transform:rotate(-1.4deg) translateY(-1px)}to{transform:rotate(1.4deg) translateY(1px)}}@keyframes christmas-star-pulse{0%{opacity:.78;transform:scale(.92) rotate(-2deg)}to{opacity:1;transform:scale(1.08) rotate(2deg)}}@keyframes sakura-button-bloom{0%{filter:saturate(.92);transform:translate(-.03rem) rotate(-3deg) scale(.98)}to{filter:saturate(1.15) brightness(1.08);transform:translate(-.03rem) rotate(3deg) scale(1.09)}}@keyframes sakura-arrive{0%{opacity:0;transform:translateY(-8px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sakura-blossom-breathe{0%{transform:rotate(-2.2deg) scale(var(--blossom-scale, 1))}to{transform:rotate(2.2deg) scale(var(--blossom-scale, 1))}}@keyframes sakura-petal-fall{0%{opacity:0;transform:translateY(-12px) rotate(0)}12%{opacity:.82}78%{opacity:.64}to{opacity:0;transform:translate(var(--petal-drift, 25px),180px) rotate(var(--petal-turn, 210deg))}}@keyframes moonlight-arrive{0%{opacity:0}to{opacity:1}}@keyframes night-star-twinkle{0%{opacity:.35;transform:scale(.72)}to{opacity:1;transform:scale(1.15)}}@keyframes firefly-drift{0%,to{opacity:.16;transform:translateY(5px) scale(.68)}32%{opacity:1;transform:translate(var(--firefly-drift, 16px),-11px) scale(1.12)}68%{opacity:.5;transform:translate(-9px,-18px) scale(.84)}}@keyframes rain-fall{0%{opacity:0;transform:translate(70px,-120px)}12%{opacity:1}to{opacity:.2;transform:translate(-80px,880px)}}@keyframes rain-puddle-ripple{0%{opacity:0;transform:scaleX(.65) scaleY(.4)}35%{opacity:.65}to{opacity:0;transform:scaleX(1.08) scaleY(1.3)}}@keyframes growth-line-rise{0%{opacity:0;stroke-dashoffset:1}14%{opacity:1}76%{opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:0}}@keyframes growth-bud-pop{0%{opacity:0;transform:scale(.2)}48%{opacity:.92;transform:scale(1.25)}to{opacity:0;transform:scale(1.8)}}@keyframes water-puddle{0%{opacity:0;transform:scaleX(.35) scaleY(.5)}32%{opacity:1}to{opacity:0;transform:scaleX(1.35) scaleY(1.5)}}@keyframes water-splash-up{0%{opacity:0;transform:scaleY(.1)}42%{opacity:1;transform:scaleY(1.15)}to{opacity:0;transform:scaleY(.7) translateY(8px)}}@keyframes leaf-grow{0%{opacity:.42;transform:translateY(18px) rotate(var(--leaf-rotation)) scale(var(--growth-scale-start, .72))}55%{opacity:1;transform:translateY(-5px) rotate(var(--leaf-rotation)) scale(var(--growth-scale-peak, 1.08))}to{opacity:1;transform:translateY(0) rotate(var(--leaf-rotation)) scale(var(--leaf-scale, 1))}}@keyframes leaf-zero-gravity{0%,to{opacity:1;transform:translate(0) rotate(var(--leaf-rotation)) scale(var(--leaf-scale, 1))}19%{transform:translate(var(--magic-x1),var(--magic-y1)) rotate(calc(var(--leaf-rotation) + var(--magic-r1))) scale(var(--leaf-scale, 1))}48%{opacity:.94;transform:translate(var(--magic-x2),var(--magic-y2)) rotate(calc(var(--leaf-rotation) + var(--magic-r2))) scale(var(--leaf-scale, 1))}76%{transform:translate(var(--magic-x3),var(--magic-y3)) rotate(calc(var(--leaf-rotation) + var(--magic-r3))) scale(var(--leaf-scale, 1))}}@keyframes magic-branches-dim{0%,to{opacity:1}35%{opacity:.12}72%{opacity:.34}}@keyframes magic-sparkle{0%,to{opacity:0;transform:rotate(0) scale(.25)}46%{opacity:.95;transform:rotate(45deg) scale(1.2)}}@media(max-width:47.99rem){.weather-controls{width:13.1rem}.photo-tree{margin-top:3.4rem}}@media(min-width:48rem){body:before{background-image:var(--background-large)}.site-shell{grid-template-columns:14rem minmax(0,1fr);gap:clamp(3rem,7vw,7.5rem);width:min(100% - 4rem,86rem);padding-block:2.5rem 7rem}.site-sidebar{position:sticky;top:2.5rem;align-self:start;max-height:calc(100vh - 5rem)}.site-index:not([open])>.project-index{display:grid}.site-index summary{cursor:default}.index-toggle{display:none}.home-tree{min-height:calc(100vh - 5rem)}.photo-tree-frame{display:grid;min-height:calc(100vh - 6rem);place-items:center}.project-page,.about-page{padding-top:.25rem}}@media(min-width:78rem){.nav-preview{position:absolute;z-index:50;top:50%;right:auto;left:calc(100% + 1.2rem);display:block;width:9.5rem;aspect-ratio:4 / 3;object-fit:cover;opacity:0;pointer-events:none;transform:translate(-.6rem,-50%) scale(.97);filter:blur(5px);box-shadow:0 1rem 2.5rem #27234433;transition:opacity .16s ease,transform .16s ease,filter .16s ease}.project-link:hover .nav-preview{opacity:.95;transform:translateY(-50%) scale(1);filter:blur(0)}}@media(max-width:47.999rem){.site-index:not([open])>.project-index{display:none}.camera-text,.visitor-map{display:none}.site-main{min-height:65vh}.tree-instruction{top:-.3rem}.photo-tree-frame{width:calc(100% + 1rem);margin-left:-.5rem;overflow-x:auto}.photo-tree{width:58rem;max-width:none}.project-header h1,.about-header h1{font-size:clamp(3.1rem,16vw,5.4rem)}.project-story,.about-copy{margin-left:0;padding-inline:.75rem}.photo-frame-2,.photo-frame-3,.photo-frame-4{width:92%}.profile-collage{width:calc(100% + 1rem);margin-left:-.5rem}.lightbox-image{padding:4rem 1.1rem 4.5rem}.lightbox-previous,.lightbox-next{top:auto;bottom:.6rem;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
