.home{max-width:76rem;height:100dvh;padding:clamp(1rem, 3.5vh, var(--spacing-stack-lg)) var(--spacing-gutter);text-align:center;grid-template-rows:auto 1fr auto;justify-items:center;margin:0 auto;display:grid;position:relative;overflow:hidden}.canopy{z-index:-1;pointer-events:none;opacity:var(--daylight-strength);mix-blend-mode:multiply;transition:opacity var(--motion-enter) var(--motion-ease-default);position:fixed;inset:0;overflow:hidden}:root:not([data-daypart]) .canopy{opacity:0}.leaves{width:auto;height:auto;rotate:var(--daylight-angle);transform-origin:100% 100%;will-change:transform;fill:var(--daylight-tint);stroke:var(--daylight-tint);transition:fill var(--motion-enter) var(--motion-ease-default), stroke var(--motion-enter) var(--motion-ease-default);position:absolute;inset:-12vmax}.leaves-near{filter:blur(.28vmax);animation:11s ease-in-out infinite sway-near}.leaves-far{filter:blur(.8vmax);opacity:.65;animation:17s ease-in-out infinite sway-far}.canopy-defs{position:absolute}@keyframes sway-near{0%,to{transform:rotate(0)translate(0)}35%{transform:rotate(1.5deg)translate(-1.1vmax,.3vmax)}70%{transform:rotate(-.7deg)translate(.5vmax,-.2vmax)}}@keyframes sway-far{0%,to{transform:rotate(0)translate(0)}40%{transform:rotate(-1.1deg)translate(.8vmax,-.4vmax)}75%{transform:rotate(.6deg)translate(-.4vmax,.2vmax)}}[data-enter]{animation:enter var(--motion-enter) var(--motion-ease-default) backwards;animation-delay:calc(var(--i,0) * 55ms)}@keyframes enter{0%{opacity:0;transform:translateY(10px)}}.eyebrow{font-size:var(--typography-caption);font-weight:var(--primitive-fontWeight-medium);letter-spacing:var(--primitive-tracking-wider);text-transform:uppercase;color:var(--color-ink-muted);margin:0;position:relative}.kv{text-transform:none;margin:0}.kv-letter{cursor:default;display:inline-block;position:relative}.kv-base,.kv-alt{transition:opacity var(--motion-hover) var(--motion-ease-default)}.kv-alt{opacity:0;color:var(--color-accent);position:absolute;inset:0}.kv-letter:is(:hover,:focus-visible) .kv-base{opacity:0}.kv-letter:is(:hover,:focus-visible) .kv-alt{opacity:1}.clock{align-items:baseline;gap:.35em;margin:0;display:inline-flex}.clock-input{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;border:none;border-bottom:1px dashed var(--color-border);text-align:left;cursor:text;field-sizing:content;background:0 0;min-width:3ch;max-width:16ch;padding:0}.clock-input:focus-visible{border-color:var(--color-accent);outline:none}.stage{align-content:center;justify-items:center;gap:clamp(.75rem, 2.5vh, var(--spacing-stack));width:100%;min-height:0;display:grid}.halo{place-items:center;display:grid;position:relative}.halo:before{content:"";border-radius:var(--primitive-radius-full);border:1px dashed var(--accent-200);animation:spin 24s var(--primitive-easing-linear) infinite;position:absolute;inset:-14px}@keyframes spin{to{transform:rotate(360deg)}}.photo{aspect-ratio:1;border-radius:var(--primitive-radius-full);border:1px solid var(--color-border);background:linear-gradient(150deg, var(--color-accent-soft), var(--color-surface-sunken) 55%, var(--color-border));filter:grayscale(.35);width:clamp(96px,17vh,168px);transform:translate(calc(var(--mx,0) * 10px), calc(var(--my,0) * 10px));transition:box-shadow var(--motion-hover) var(--motion-ease-default), filter var(--motion-hover) var(--motion-ease-default);place-items:center;display:grid;position:relative;overflow:hidden}.photo:hover,.photo:focus-visible{filter:grayscale(0);box-shadow:var(--shadow-glow-accent)}.brush-canvas{z-index:1;width:100%;height:100%;position:absolute;inset:0}.brush-source{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.photo-img{object-fit:cover;width:100%;height:100%;transition:opacity var(--motion-hover) var(--motion-ease-default);position:absolute;inset:0}.photo-img--spider{opacity:0}.photo[data-revealed=spider] .photo-img--spider{opacity:1}.photo[data-revealed=spider] .photo-img:not(.photo-img--spider){opacity:0}.name{font-size:clamp(2.75rem,8vw,4.5rem);font-weight:var(--primitive-fontWeight-bold);letter-spacing:var(--primitive-tracking-tight);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;line-height:.9}@media (forced-colors:active){.name{color:canvastext}}.tagline{max-width:60ch;font-size:clamp(1rem, 1.6vw, var(--typography-tagline));margin:0;line-height:1.55}.tagline .muted{color:var(--color-ink-muted)}.flourish{font-family:var(--font-flourish), var(--primitive-fontFamily-flourish);font-style:italic;font-weight:var(--primitive-fontWeight-medium);color:var(--color-accent)}.spark{font-size:inherit;line-height:inherit;cursor:pointer;transition:color var(--motion-hover) var(--motion-ease-default), transform var(--motion-playful) var(--motion-ease-playful);background:0 0;border:none;margin:0;padding:0;display:inline-block}.spark:hover,.spark:focus-visible{color:var(--color-accent)}.spark:active{transition-duration:var(--motion-press);transform:scale(.9)rotate(-4deg)}.spark-burst{animation:spark-pop var(--motion-playful) var(--motion-ease-playful);display:inline-block}@keyframes spark-pop{0%{transform:scale(1)rotate(0)}35%{transform:scale(1.3)rotate(-8deg)}65%{transform:scale(.95)rotate(5deg)}to{transform:scale(1)rotate(0)}}.gates{gap:clamp(.5rem, 1.2vw, var(--spacing-stack-xs));width:min(100%,44rem);margin-top:clamp(.25rem, 1.5vh, var(--spacing-stack-sm));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gate{text-align:left;padding:clamp(.875rem, 1.8vh, var(--gateway-card-padding));background:var(--gateway-card-bg);border:1px solid var(--gateway-card-border);border-radius:var(--gateway-card-radius);box-shadow:var(--gateway-card-shadow);isolation:isolate;transition:transform var(--motion-hover) var(--motion-ease-default), box-shadow var(--motion-hover) var(--motion-ease-default), border-color var(--motion-hover) var(--motion-ease-default);align-content:start;gap:.25rem;display:grid;position:relative;overflow:hidden}.gate:after{content:"";z-index:-1;background:var(--color-accent-soft);opacity:0;transition:opacity var(--motion-hover) var(--motion-ease-default);position:absolute;inset:0}.gate:hover,.gate:focus-visible{transform:translateY(var(--gateway-card-lift-hover));box-shadow:var(--gateway-card-shadow-hover);border-color:var(--gateway-card-border-hover);transition-duration:var(--motion-enter);transition-timing-function:var(--motion-ease-playful), var(--motion-ease-default), var(--motion-ease-default)}.gate:hover:after,.gate:focus-visible:after{opacity:1;transition-duration:var(--motion-enter)}.gate:active{transition-duration:var(--motion-press);transform:translateY(-1px)}.gate h2{font-size:var(--typography-label);font-weight:var(--primitive-fontWeight-medium);letter-spacing:var(--primitive-tracking-wide);margin:0}.gate p{font-size:var(--typography-caption);color:var(--color-ink-muted);margin:0;line-height:1.5}.gate .arrow{top:clamp(.875rem, 1.8vh, var(--gateway-card-padding));right:clamp(.875rem, 1.8vh, var(--gateway-card-padding));color:var(--color-ink-faint);transition:transform var(--motion-hover) var(--motion-ease-default), color var(--motion-hover) var(--motion-ease-default);position:absolute}.gate:hover .arrow,.gate:focus-visible .arrow{color:var(--color-accent);transition-duration:var(--motion-enter);transform:translate(3px,-3px)}.door,.trail{bottom:clamp(1rem, 3.5vh, var(--spacing-stack-lg));z-index:5;font-size:var(--typography-caption);font-weight:var(--primitive-fontWeight-medium);letter-spacing:var(--primitive-tracking-wider);text-transform:uppercase;color:var(--color-ink-muted);transition:color var(--motion-hover) var(--motion-ease-default);align-items:flex-end;gap:.6rem;display:flex;position:absolute}.door{left:var(--spacing-gutter)}.trail{right:var(--spacing-gutter)}.door:is(:hover,:focus-visible),.trail:is(:hover,:focus-visible){color:var(--color-ink)}@media (max-width:640px){.door-label{display:none}}.door-frame{perspective:120px;width:20px;height:30px;transition:background var(--motion-playful) var(--motion-ease-default), box-shadow var(--motion-playful) var(--motion-ease-default);background:0 0;border:1.5px solid;border-bottom:0;border-radius:10px 10px 0 0;position:relative}.door-leaf{transform-origin:0;transition:transform var(--motion-playful) var(--motion-ease-playful);background:currentColor;border-radius:7px 7px 0 0;position:absolute;inset:2px 2px 0}.door-leaf:after{content:"";border-radius:var(--primitive-radius-full);background:var(--color-surface);width:3px;height:3px;position:absolute;top:55%;right:3px}.door:is(:hover,:focus-visible) .door-frame{background:var(--color-accent);box-shadow:0 0 18px color-mix(in srgb, var(--color-accent) 55%, transparent)}.door:is(:hover,:focus-visible) .door-leaf{transform:rotateY(-70deg)}.trail-icon{width:30px;height:30px;overflow:visible}.trail-line{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:2.5 3.5}.trail-pin{fill:currentColor;transition:fill var(--motion-hover) var(--motion-ease-default), translate var(--motion-playful) var(--motion-ease-playful)}.trail:is(:hover,:focus-visible) .trail-line{animation:.9s linear infinite trail-march}.trail:is(:hover,:focus-visible) .trail-pin{fill:var(--color-accent);translate:0 -2px}@keyframes trail-march{to{stroke-dashoffset:-6px}}.foot{justify-items:center;gap:clamp(.5rem, 1.5vh, var(--spacing-stack-sm));display:grid}.socials{justify-content:center;gap:var(--spacing-stack-xs);flex-wrap:wrap;display:flex}.social{width:var(--social-icon-size);height:var(--social-icon-size);border:1px solid var(--social-icon-border);border-radius:var(--social-icon-radius);background:var(--social-icon-bg);color:var(--social-icon-fg);transition:background var(--motion-hover) var(--motion-ease-default), border-color var(--motion-hover) var(--motion-ease-default), color var(--motion-hover) var(--motion-ease-default), transform var(--motion-playful) var(--motion-ease-playful);place-items:center;display:grid}.social svg{width:18px;height:18px}.social:hover,.social:focus-visible{background:var(--social-icon-bg-hover);border-color:var(--social-icon-border-hover);color:var(--social-icon-fg-hover);transform:translateY(-3px)scale(1.06)}.social:active{transition-duration:var(--motion-press);transform:translateY(-1px)scale(.97)}.island{z-index:50;text-transform:none;letter-spacing:normal;background:var(--chip-bg);color:var(--chip-fg);box-shadow:var(--shadow-lift);--island-h:2.25rem;width:11.5rem;height:var(--island-h);border-radius:calc(var(--island-h) / 2);transition:width var(--motion-playful) var(--motion-ease-playful), height var(--motion-playful) var(--motion-ease-playful), border-radius var(--motion-playful) var(--motion-ease-playful);position:absolute;top:calc(50% - 1.125rem);left:50%;overflow:hidden;translate:-50%}.island[data-open]{width:min(21rem,100vw - 2rem);height:calc(7rem + var(--projects,1) * 1.25rem);border-radius:var(--primitive-radius-xl)}@media (max-width:780px){.island{width:8.5rem}}.island-pill,.island-panel{transition:opacity var(--motion-hover) var(--motion-ease-default), scale var(--motion-playful) var(--motion-ease-playful);position:absolute;inset:0}.island-pill[inert],.island-panel[inert]{opacity:0;pointer-events:none;scale:.94}.island-pill{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.5rem;padding:0 .75rem;display:flex}.island-count{font-size:var(--typography-caption);font-variant-numeric:tabular-nums;color:var(--color-accent);align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.island-count svg{width:14px;height:14px}.island[data-live] .island-pill .island-gh-icon{animation:pulse-soft var(--primitive-duration-ambient) var(--primitive-easing-linear) infinite}@keyframes pulse-soft{50%{opacity:.55}}.island-gh-icon{width:15px;height:15px;color:var(--color-accent);flex:none}.island-panel{flex-direction:column;gap:.5rem;padding:.75rem .875rem;display:flex}.island-gh-header{flex:none;align-items:center;gap:.5rem;display:flex}.island-gh-user{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;font-size:var(--typography-caption);flex:1;margin:0;overflow:hidden}.island-gh-muted,.island-gh-text{color:color-mix(in srgb, var(--chip-fg) 60%, transparent)}.island-close{border-radius:var(--primitive-radius-full);width:1.75rem;height:1.75rem;color:inherit;cursor:pointer;transition:background var(--motion-hover) var(--motion-ease-default), transform var(--motion-playful) var(--motion-ease-playful);background:0 0;border:none;flex:none;place-items:center;padding:0;display:grid}.island-close:hover,.island-close:focus-visible{background:color-mix(in srgb, var(--chip-fg) 14%, transparent);transform:scale(1.1)}.island-close:active{transition-duration:var(--motion-press);transform:scale(.92)}.island-close svg{width:16px;height:16px}.island-now{font-size:var(--typography-caption);font-weight:var(--primitive-fontWeight-medium);text-align:left;flex:none;margin:0;padding:0;list-style:none;display:grid}.island-now li{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.5rem;height:1.25rem;display:flex;overflow:hidden}.island-now li:before{content:"";border-radius:var(--primitive-radius-full);background:var(--color-accent);flex:none;width:5px;height:5px}.island-gh-row{font-size:var(--typography-caption);align-items:baseline;gap:.5rem;display:flex}.island-gh-text{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;overflow:hidden}.island-gh-time{font-variant-numeric:tabular-nums;color:color-mix(in srgb, var(--chip-fg) 55%, transparent);flex:none}.island-gh-days{flex:none;justify-content:space-between;display:flex}.island-gh-day{border-radius:var(--primitive-radius-full);border:1px solid color-mix(in srgb, var(--chip-fg) 30%, transparent);width:7px;height:7px;transition:background var(--motion-hover) var(--motion-ease-default), border-color var(--motion-hover) var(--motion-ease-default);background:0 0}.island-gh-day[data-active]{background:var(--color-accent);border-color:var(--color-accent)}@media (max-width:780px){.gates{grid-template-columns:1fr;gap:.5rem}.gate{padding:.7rem 2.25rem .7rem .85rem}.gate p{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.gate .arrow{top:50%;right:.85rem;transform:translateY(-50%)}.gate:hover .arrow,.gate:focus-visible .arrow{transform:translate(3px,-50%)}}@media (prefers-reduced-motion:reduce){.photo,.gate,.social,.gate .arrow,.spark{transform:none!important}.gate:after{display:none}.trail-pin{translate:none!important}.island-pill[inert],.island-panel[inert]{scale:none}}
