.atelier-body{min-height:100vh;color:var(--color-ink);font-family:var(--font-sans);background:radial-gradient(80% 55% at 88% 8%,#a7c7ff47,#0000 58%),radial-gradient(55% 45% at 8% 20%,#ffc4d629,#0000 52%),#f5f6f8}html.dark .atelier-body{background:radial-gradient(ellipse 80% 55% at 88% 8%, #3b82f629, transparent 58%), radial-gradient(ellipse 55% 45% at 8% 20%, #f472b614, transparent 52%), var(--color-paper)}.atelier-frame{flex-direction:column;min-height:100vh;display:flex}.atelier-main{flex:1;width:min(72rem,100% - 1.5rem);margin:0 auto;padding:6.25rem 0 3.5rem;overflow:visible}@media (width>=768px){.atelier-main{width:min(72rem,100% - 3rem);padding-top:6.25rem}}.site-header{z-index:60;border-bottom:1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);backdrop-filter:blur(18px)saturate(1.15);background:#ffffffb8;position:fixed;inset:0 0 auto}html.dark .site-header{background:color-mix(in srgb, var(--color-paper) 78%, transparent);border-bottom-color:#ffffff14}.site-header-inner{grid-template-columns:1fr auto;align-items:center;gap:.75rem 1rem;width:min(72rem,100% - 1.5rem);margin:0 auto;padding:.9rem 0;display:grid}.site-brand{align-items:baseline;gap:.45rem;display:inline-flex}.site-brand-name{font-family:var(--font-display);color:var(--color-ink);letter-spacing:.01em;font-size:2rem;font-weight:400;line-height:1}.site-brand-sub{font-family:var(--font-brand-cn);color:var(--color-ink);letter-spacing:.08em;opacity:.78;font-size:1.35rem;font-weight:400;line-height:1}.site-header-nav{grid-column:1/-1;gap:.2rem;display:flex;overflow-x:auto}.site-header-nav a{color:var(--color-muted);border-radius:999px;flex:none;padding:.45rem .9rem;font-size:.88rem;transition:color .2s,background .2s}.site-header-nav a:hover,.site-header-nav a.is-active{color:var(--color-ink);background:#ffffffb3;box-shadow:0 6px 18px #1111110d}.site-header-tools{grid-area:1/2;justify-self:end;align-items:center;gap:.65rem;display:flex}.site-header-search input{border:0;border-bottom:1px solid var(--color-line);width:4.5rem;color:var(--color-ink);background:0 0;outline:none;padding:.3rem 0;font-size:.84rem;transition:width .25s}.site-header-search input:focus{width:8rem}@media (width>=900px){.site-header-inner{grid-template-columns:auto 1fr auto;gap:1.5rem}.site-brand-name{font-size:2.25rem}.site-brand-sub{font-size:1.45rem}.site-header-nav{grid-column:auto;justify-content:center;overflow:visible}.site-header-tools{grid-area:auto}}.folio-hero{box-sizing:border-box;align-items:start;gap:2rem;width:100vw;max-width:100vw;min-height:min(72svh,40rem);margin-left:calc(50% - 50vw);padding:.35rem max(.75rem,50vw - 34.75rem) 3.75rem;display:grid;position:relative;overflow:visible}.folio-hero-glow{z-index:0;opacity:.28;pointer-events:none;position:absolute;inset:-12% -2% 12% 28%;mask-image:radial-gradient(78% 72% at 72% 42%,#000 18%,#0000 78%)}.folio-hero-orbit{z-index:0;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);pointer-events:none;opacity:.7;border-radius:50%;width:min(34rem,48vw);position:absolute;top:8%;right:max(2%,50vw - 37rem)}.folio-hero-orbit:before,.folio-hero-orbit:after{content:"";border:1px dashed color-mix(in srgb, var(--color-ink) 7%, transparent);border-radius:50%;position:absolute;inset:8%}.folio-hero-orbit:after{border-style:solid;border-color:#f0c36a38;inset:18%}.folio-hero-copy,.folio-hero-figure{z-index:1;position:relative}.folio-hero-copy{border-left:0;padding-left:0}.folio-eyebrow{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem}.folio-title{letter-spacing:-.045em;max-width:12ch;margin-top:.85rem;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:700;line-height:1.05}.folio-title-hello{letter-spacing:-.03em;max-width:none;font-size:clamp(2.8rem,7vw,4.8rem);font-weight:650;line-height:1.08}.folio-title-hello.is-done .hello-name{background-image:linear-gradient(100deg,#0000 0%,#f0c36a59 48%,#0000 100%);background-position:0 88%;background-repeat:no-repeat;background-size:100% .28em}.folio-title-sm{max-width:none;font-size:clamp(1.9rem,4.5vw,3rem)}.folio-role{color:var(--color-ink);letter-spacing:-.02em;margin:.85rem 0 0;font-size:1.05rem;font-weight:550}.folio-lead{max-width:34rem;color:var(--color-muted);margin-top:.7rem;font-size:1rem;line-height:1.75}.folio-hero-copy [data-stream-reveal]{opacity:0;transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1);transform:translateY(10px)}.folio-hero-copy [data-stream-reveal].is-in{opacity:1;transform:none}.folio-hero-copy [data-stream-reveal]:nth-child(3){transition-delay:40ms}.folio-hero-copy [data-stream-reveal]:nth-child(4){transition-delay:.1s}.folio-hero-copy [data-stream-reveal]:nth-child(5){transition-delay:.16s}.folio-hero-copy [data-stream-reveal]:nth-child(6){transition-delay:.22s}@media (prefers-reduced-motion:reduce){.folio-hero-copy [data-stream-reveal]{opacity:1;transition:none;transform:none}}.folio-portrait-frame{place-items:center;padding:.55rem;display:inline-grid;position:relative}.folio-portrait-frame:before{content:"";pointer-events:none;border:1px solid #f0c36a57;border-radius:1.55rem;position:absolute;inset:0;transform:rotate(-2.5deg)}.folio-portrait-frame:after{content:"";border:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);pointer-events:none;border-radius:1.4rem;position:absolute;inset:.35rem}.folio-pills{flex-wrap:wrap;gap:.55rem;margin-top:1.35rem;display:flex}.folio-pills-sm{margin-top:1rem}.folio-pill{border-radius:999px;padding:.38rem .8rem;font-size:.78rem;font-weight:500;display:inline-flex}.folio-pills-sm .folio-pill{padding:.28rem .65rem;font-size:.72rem}.tone-a{color:#3b6fb6;background:#e8f1ff}.tone-b{color:#b44d78;background:#fde8f1}.tone-c{color:#2f8a5b;background:#e9f8ef}.tone-d{color:#b07520;background:#fff3df}.tone-e{color:#6a4fb3;background:#efe9ff}.tone-f{color:#2b7c7c;background:#e7f7f7}html.dark .tone-a{color:#c5d9ff;background:#202f43}html.dark .tone-b{color:#ffc2dc;background:#422531}html.dark .tone-c{color:#b6f0d0;background:#1d3629}html.dark .tone-d{color:#ffd9a0;background:#413119}html.dark .tone-e{color:#d8cbff;background:#2e2642}html.dark .tone-f{color:#b7efef;background:#1c3333}.folio-info-cards{gap:.85rem;margin-top:1.75rem;display:grid}@media (width>=560px){.folio-info-cards{grid-template-columns:1fr 1fr}}.folio-info-card{border:1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);backdrop-filter:blur(12px);background:#ffffffd1;border-radius:1.15rem;align-items:flex-start;gap:.8rem;padding:1rem 1.05rem;display:flex;box-shadow:0 14px 34px #1418280d}.folio-info-icon{color:var(--color-muted);font-size:.95rem;line-height:1.4}.folio-info-card h2{margin:0;font-size:.92rem;font-weight:600}.folio-info-card p{color:var(--color-muted);margin-top:.25rem;font-size:.82rem;line-height:1.45}.folio-hero-figure{text-align:center;width:min(100%,34rem);box-shadow:none;background:0 0;border:0;justify-self:center;overflow:visible}.folio-figure-stage{min-height:28rem;box-shadow:none;background:0 0;border:0;place-items:end center;display:grid;position:relative;overflow:visible}.folio-figure-3d{cursor:grab;touch-action:none;user-select:none}.folio-figure-3d.is-spinning{cursor:grabbing}.folio-figure-3d:focus-visible{outline:2px solid color-mix(in srgb, var(--color-ink) 28%, transparent);outline-offset:6px;border-radius:1rem}.folio-figure-3d.is-compact{min-height:22rem}.folio-figure-canvas{z-index:2;touch-action:none;width:100%;height:100%;display:none;position:absolute;inset:0}.folio-figure-3d.is-ready .folio-figure-canvas{display:block}.folio-figure-3d.is-ready .folio-figure-fallback{display:none}.folio-figure-3d.is-ready .folio-figure-floor{opacity:.35}.folio-figure-stage:before{content:none}.folio-figure-img{z-index:1;object-fit:contain;object-position:center bottom;width:min(100%,30rem);height:auto;max-height:40rem;box-shadow:none;filter:drop-shadow(0 22px 36px #14182829);pointer-events:none;-webkit-user-drag:none;background:0 0;border:0;outline:0;animation:6.5s ease-in-out infinite folio-float;position:relative}.folio-figure-portrait{aspect-ratio:1;object-fit:cover;object-position:center 18%;filter:drop-shadow(0 18px 32px #14182824);border-radius:1.35rem;width:min(100%,22rem);max-height:none}html.dark .folio-figure-img{filter:drop-shadow(0 22px 40px #00000080)}html.dark .folio-figure-portrait{filter:drop-shadow(0 18px 36px #00000073)}.folio-about-thumb{z-index:1;aspect-ratio:1;object-fit:cover;object-position:center 18%;filter:drop-shadow(0 12px 20px #1418282e);border-radius:1rem;width:min(100%,8.5rem);height:auto;max-height:none;margin-inline:auto;display:block;position:relative}html.dark .folio-about-thumb{filter:drop-shadow(0 16px 32px #0000008c)}.folio-figure-floor{z-index:0;filter:blur(5px);background:radial-gradient(#1418281f,#0000 72%);border-radius:999px;width:58%;height:.9rem;position:absolute;bottom:.35rem;left:50%;transform:translate(-50%)}.folio-figure-caption{color:var(--color-muted);margin-top:.55rem;font-family:Georgia,Times New Roman,serif;font-size:.95rem;font-style:italic}.folio-figure-hint{z-index:3;color:var(--color-muted);font-family:var(--font-sans);letter-spacing:.04em;opacity:.72;pointer-events:none;margin:0;font-size:.72rem;position:absolute;bottom:1.15rem;left:50%;transform:translate(-50%)}@media (width>=980px){.folio-hero{grid-template-columns:.88fr 1.12fr;align-items:center;gap:1.75rem;padding-top:.15rem;padding-left:max(2.5rem,50vw - 31.5rem);padding-right:max(1.25rem,50vw - 36rem);overflow:visible}.folio-hero-copy{place-self:center end;width:100%;max-width:32rem;margin-right:-.5rem;padding-top:.5rem}.folio-hero-figure{place-self:center end;width:min(100%,28rem);margin-top:0;margin-bottom:0;margin-right:1.5rem}.folio-figure-stage{min-height:26rem}.folio-figure-img{width:min(100%,28rem);max-height:40rem}.folio-figure-portrait{width:min(100%,22rem);max-height:none}}@keyframes folio-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}html:has([data-page-snap]){scrollbar-width:none;-ms-overflow-style:none}html:has([data-page-snap])::-webkit-scrollbar{width:0;height:0;display:none}.folio-pages{flex-direction:column;display:flex}.folio-page{box-sizing:border-box;min-height:calc(100svh - 5.5rem);scroll-margin-top:5.25rem}.folio-page>*{opacity:.28;will-change:opacity, transform;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);transform:translateY(28px)}.folio-page:first-child>*,.folio-page.is-active>*{opacity:1;transform:translate(0,0)}.folio-page.is-active>:first-child{transition-delay:40ms}.folio-page.is-active>:nth-child(2){transition-delay:90ms}.folio-page.is-active>:nth-child(3){transition-delay:.14s}.folio-page.is-active>:nth-child(4){transition-delay:.18s}.folio-page.is-active>:nth-child(n+5){transition-delay:.21s}.folio-pages[data-page-dir=down] .folio-page.is-entering>*{animation:.58s cubic-bezier(.22,1,.36,1) both folio-page-rise}.folio-pages[data-page-dir=up] .folio-page.is-entering>*{animation:.58s cubic-bezier(.22,1,.36,1) both folio-page-drop}.folio-pages[data-page-dir=down] .folio-page.is-entering>:first-child{animation-delay:30ms}.folio-pages[data-page-dir=down] .folio-page.is-entering>:nth-child(2){animation-delay:80ms}.folio-pages[data-page-dir=down] .folio-page.is-entering>:nth-child(3){animation-delay:.12s}.folio-pages[data-page-dir=down] .folio-page.is-entering>:nth-child(4){animation-delay:.16s}.folio-pages[data-page-dir=up] .folio-page.is-entering>:first-child{animation-delay:30ms}.folio-pages[data-page-dir=up] .folio-page.is-entering>:nth-child(2){animation-delay:80ms}.folio-pages[data-page-dir=up] .folio-page.is-entering>:nth-child(3){animation-delay:.12s}.folio-pages[data-page-dir=up] .folio-page.is-entering>:nth-child(4){animation-delay:.16s}@keyframes folio-page-rise{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translate(0,0)}}@keyframes folio-page-drop{0%{opacity:0;transform:translateY(-32px)}to{opacity:1;transform:translate(0,0)}}@media (prefers-reduced-motion:reduce){.folio-page>*{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}.folio-page.folio-section,.folio-page.folio-about-banner{flex-direction:column;justify-content:center;display:flex}.folio-page.folio-about-banner{margin-top:0;margin-bottom:1rem}.folio-page.folio-hero{min-height:calc(100svh - 6.5rem);position:relative}.folio-scroll-hint{left:50%;bottom:max(1.35rem, env(safe-area-inset-bottom,0px) + 1rem);z-index:45;color:color-mix(in srgb, var(--color-ink) 42%, transparent);cursor:pointer;opacity:1;pointer-events:auto;background:0 0;border:0;flex-direction:column;align-items:center;gap:.45rem;padding:.35rem;transition:color .25s,opacity .4s,transform .4s;display:inline-flex;position:fixed;transform:translate(-50%)}.folio-scroll-hint.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%)translateY(10px)}.folio-scroll-hint:hover{color:color-mix(in srgb, var(--color-ink) 78%, transparent)}.folio-scroll-hint-line{opacity:.9;background:linear-gradient(#0000 0%,currentColor 45% 100%);width:1px;height:1.75rem;animation:2.2s ease-in-out infinite folio-hint-line}.folio-scroll-hint-chevron{border-bottom:1px solid;border-right:1px solid;width:.48rem;height:.48rem;margin-top:-.15rem;animation:2.2s ease-in-out infinite folio-hint-chevron;transform:rotate(45deg)}.folio-scroll-hint-text{display:none}html.dark .folio-scroll-hint{color:#ffffff61}html.dark .folio-scroll-hint:hover{color:#ffffffb8}@keyframes folio-hint-line{0%,to{opacity:.2;transform-origin:top;transform:scaleY(.4)}50%{opacity:.85;transform-origin:top;transform:scaleY(1)}}@keyframes folio-hint-chevron{0%,to{opacity:.25;transform:translateY(0)rotate(45deg)}50%{opacity:.95;transform:translateY(6px)rotate(45deg)}}@media (prefers-reduced-motion:reduce){.folio-scroll-hint-line,.folio-scroll-hint-chevron{opacity:.55;animation:none}}@media (width<=767px){.folio-page{min-height:auto;scroll-margin-top:6.5rem}.folio-page.folio-hero,.folio-page.folio-about-orbit{min-height:calc(100svh - 6.5rem)}.folio-scroll-hint{bottom:max(1rem, env(safe-area-inset-bottom,0px) + .75rem)}}.folio-section{padding:2.75rem 0 1rem}.folio-section-head{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.4rem;display:flex}.folio-section-head h2{letter-spacing:-.03em;margin:.35rem 0 0;font-size:1.45rem;font-weight:600}.folio-section-head a{color:var(--color-muted);font-size:.88rem}.folio-section-head a:hover{color:var(--color-ink)}.folio-empty{color:var(--color-muted)}.folio-note-grid,.folio-work-grid{gap:1rem;display:grid}.folio-skill-grid{align-items:stretch;gap:1rem;display:grid}@media (width>=760px){.folio-note-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.folio-note-grid--articles{grid-template-columns:repeat(2,minmax(0,1fr))}.folio-note-grid--articles .folio-note-card{flex-direction:column;min-height:0;display:flex}.folio-note-grid--articles .folio-card-cover{aspect-ratio:16/10;flex:none;max-height:11rem}.folio-note-grid--articles .folio-card-body{flex:auto}.folio-note-grid--articles .folio-card p{-webkit-line-clamp:2}.folio-work-grid,.folio-skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.folio-note-grid--articles{grid-template-columns:repeat(3,minmax(0,1fr))}}.folio-note-grid--list{margin-top:1rem}#notes.folio-page{gap:1rem;padding-block:1.5rem 1.25rem;overflow:hidden}#notes .folio-section-head{flex:none;margin-bottom:.85rem}#notes .folio-note-grid--home{flex:0 auto;align-content:stretch;min-height:0;max-height:calc(100svh - 11.5rem)}#notes .folio-note-grid--home .folio-note-card{flex-direction:column;min-height:0;max-height:100%;display:flex}#notes .folio-note-grid--home .folio-card-cover{aspect-ratio:16/10;flex:none;max-height:9.5rem}#notes .folio-note-grid--home .folio-card-body{flex:auto;min-height:0}#notes .folio-note-grid--home .folio-card p{-webkit-line-clamp:2}@media (width>=760px){.folio-note-grid--home{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=759px){#notes .folio-note-grid--home{max-height:none;overflow:visible}#notes.folio-page{overflow:visible}}@media (width>=960px){.folio-work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.folio-card{border:1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);backdrop-filter:blur(12px);color:inherit;background:#ffffffdb;border-radius:1.35rem;transition:transform .3s,box-shadow .3s;display:block;overflow:hidden;box-shadow:0 16px 40px #1418280d}.folio-card:hover{transform:translateY(-3px);box-shadow:0 22px 48px #14182817}.folio-card-cover{aspect-ratio:16/10;background:var(--color-wash);overflow:hidden}.folio-card-cover img{object-fit:cover;width:100%;height:100%}.folio-card-body{padding:.85rem .95rem 1rem}.folio-card-meta{color:var(--color-muted);gap:.7rem;font-size:.72rem;display:flex}.folio-badge{color:#3b6fb6;background:#e8f1ff;border-radius:999px;padding:.1rem .5rem}.folio-card h3{letter-spacing:-.02em;margin-top:.4rem;font-size:1rem;font-weight:600;line-height:1.3}.folio-card p{color:var(--color-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.35rem;font-size:.82rem;line-height:1.5;display:-webkit-box;overflow:hidden}.folio-work-media{aspect-ratio:16/9;background:linear-gradient(145deg,#eef2f7,#f8fafc);overflow:hidden}.folio-work-card .folio-pills-sm{margin-top:.55rem}.folio-work-media img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.folio-work-card:hover .folio-work-media img{transform:scale(1.04)}.folio-work-fallback{height:100%;color:var(--color-muted);place-items:center;font-size:2rem;font-weight:600;display:grid}.folio-about-banner{border:1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);background:#ffffffd6;border-radius:1.6rem;align-items:center;gap:1.5rem;margin:2.5rem 0 1rem;padding:1.4rem;display:grid;overflow:hidden;box-shadow:0 18px 44px #1418280f}.folio-about-banner h2{letter-spacing:-.03em;margin-top:.4rem;font-size:1.6rem;font-weight:600}.folio-about-banner p{max-width:32rem;color:var(--color-muted);margin-top:.55rem;line-height:1.7}.folio-about-media{justify-self:center;width:min(100%,9.5rem)}.folio-about-stage{place-items:center;min-height:8.5rem;display:grid;position:relative}.folio-about-stage:before{content:none}@media (width>=800px){.folio-about-banner{grid-template-columns:1fr minmax(7.5rem,10rem);padding:1.15rem 1.35rem 1.15rem 1.5rem}.folio-about-media{justify-self:end;width:100%}.folio-about-stage{min-height:9.5rem}.folio-about-thumb{width:min(100%,9.25rem);margin-inline:0}}.folio-btn{background:var(--color-ink);color:#fff;border-radius:999px;margin-top:1.1rem;padding:.75rem 1.2rem;font-size:.86rem;font-weight:500;transition:transform .25s;display:inline-flex;box-shadow:0 12px 28px #11111124}.folio-btn:hover{transform:translateY(-1px)}html.dark .folio-btn{color:#0b0c0f;background:#eef0f4}.folio-page-head{padding-bottom:1.5rem}.folio-filters{flex-wrap:wrap;gap:.55rem;margin-bottom:1.4rem;display:flex}.folio-filter{color:var(--color-muted);background:#ffffffb3;border-radius:999px;padding:.4rem .85rem;font-size:.84rem;box-shadow:0 6px 16px #1418280a}.folio-filter.is-active,.folio-filter:hover{color:var(--color-ink);box-shadow:0 8px 20px #14182814}.folio-article{padding-bottom:2rem}.folio-article-narrow{max-width:44rem}.folio-links{flex-wrap:wrap;gap:1rem;margin-top:1rem;font-size:.9rem;display:flex}.folio-links a,.folio-link-btn{color:var(--color-ink);text-underline-offset:.18em;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.folio-link-btn:hover,.folio-links a:hover{color:var(--color-leaf)}.folio-preview-btn{border:1px solid color-mix(in srgb, var(--color-ink) 14%, transparent);background:linear-gradient(120deg, color-mix(in srgb, var(--color-leaf) 16%, transparent), transparent 55%), color-mix(in srgb, var(--color-card) 92%, transparent);color:var(--color-ink);font:inherit;cursor:pointer;box-shadow:0 8px 22px color-mix(in srgb, var(--color-ink) 8%, transparent);border-radius:999px;align-items:center;gap:.45rem;padding:.55rem 1rem .55rem 1.05rem;font-size:.9rem;text-decoration:none;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .35s;display:inline-flex;position:relative;overflow:hidden}.folio-preview-btn:before{content:"";background:linear-gradient(110deg,#0000 20%,#ffffff8c 45%,#0000 70%);transition:none;position:absolute;inset:0;transform:translate(-130%)}.folio-preview-btn:hover,.folio-preview-btn:focus-visible{border-color:color-mix(in srgb, var(--color-leaf) 45%, transparent);box-shadow:0 14px 30px color-mix(in srgb, var(--color-leaf) 18%, transparent);outline:none;transform:translateY(-2px)scale(1.02)}.folio-preview-btn:hover:before,.folio-preview-btn:focus-visible:before{animation:.7s cubic-bezier(.16,1,.3,1) folio-preview-shine}.folio-preview-btn-arrow{transition:transform .35s cubic-bezier(.16,1,.3,1);display:inline-block}.folio-preview-btn:hover .folio-preview-btn-arrow,.folio-preview-btn:focus-visible .folio-preview-btn-arrow{transform:translate(4px)}.folio-preview-btn:active{transform:translateY(0)scale(.99)}@keyframes folio-preview-shine{0%{transform:translate(-130%)}to{transform:translate(130%)}}.folio-cover{object-fit:cover;object-position:top center;border-radius:1.25rem;width:100%;max-height:22rem;margin-top:1.75rem;box-shadow:0 18px 40px #14182814}.folio-cover-sm{object-fit:cover;border-radius:1rem;width:100%}.folio-byline{color:var(--color-muted);gap:.4rem;margin-top:1rem;font-size:.86rem;display:flex}.folio-back{color:var(--color-muted);font-size:.88rem}.folio-back:hover{color:var(--color-ink)}.folio-about-orbit{flex-direction:column;justify-content:center;display:flex;position:relative}.folio-about-orbit-frame{flex-wrap:wrap;flex:1;justify-content:space-between;align-items:center;gap:1.5rem 2rem;width:100%;padding:.75rem 0 1.75rem;display:flex}.folio-about-orbit-visual{flex:none;width:min(100%,26rem)}.folio-about-orbit-copy{z-index:2;flex:0 26rem;max-width:26rem;margin-left:auto;position:relative}.folio-about-orbit-body{gap:.85rem;margin-top:.7rem;display:grid}.folio-about-orbit-body .folio-title{margin:0}.folio-about-edu{color:var(--color-muted);letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:.35rem .45rem;margin:-.15rem 0 0;font-size:.88rem;display:flex}.folio-about-edu span[aria-hidden=true]{opacity:.45}.folio-about-orbit-body .folio-lead{max-width:26rem;margin:0}.folio-about-orbit-body .cta-secondary{width:fit-content;margin-top:.2rem;padding:.65rem 1.1rem;font-size:.86rem}.folio-sign{font-family:var(--font-display);letter-spacing:.01em;margin:.25rem 0 .45rem;font-size:clamp(3.2rem,7vw,4.8rem);font-weight:400;line-height:1}.folio-sign-sub{font-family:var(--font-brand-cn);letter-spacing:.12em;color:var(--color-ink);opacity:.78;margin:-.15rem 0 .35rem;font-size:clamp(1.45rem,3vw,1.9rem);font-weight:400;line-height:1}.folio-stack-page{padding-block:2rem 2.5rem}.folio-stack-head{margin-bottom:1.15rem}.folio-stack-lead{max-width:28rem;color:var(--color-muted);margin:.55rem 0 0;font-size:.92rem;line-height:1.55}.skill-stack-panel{gap:1rem;display:grid}.skill-graph-cta{border:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s);background:#fff;border-radius:1.15rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem 1.25rem;padding:.95rem 1.15rem;display:flex;transform:translateY(10px);box-shadow:0 10px 28px #1418280a}html.dark .skill-graph-cta{background:color-mix(in srgb, var(--color-card) 94%, transparent)}.skill-graph-cta>p{color:var(--color-muted);margin:0;font-size:.9rem;line-height:1.5}.skill-graph-cta-btn{background:var(--color-ink);color:#fff;cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;gap:.4rem;padding:.5rem .95rem;font-size:.84rem;font-weight:500;transition:opacity .2s,transform .2s;display:inline-flex}.skill-graph-cta-btn span{transition:transform .2s}.skill-graph-cta-btn:hover{opacity:.9}.skill-graph-cta-btn:hover span{transform:translate(3px)}html.dark .skill-graph-cta-btn{color:#111;background:#f3f4f6}.skill-graph{gap:.75rem;min-height:min(28rem,100svh - 12rem);display:grid}.skill-graph-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.skill-graph-back{border:1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);color:var(--color-ink);cursor:pointer;background:0 0;border-radius:999px;padding:.4rem .9rem;font-size:.82rem}.skill-graph-back:hover{background:color-mix(in srgb, var(--color-wash) 70%, transparent)}.skill-graph-meta{color:var(--color-muted);margin:0;font-size:.78rem}.skill-graph-stage{border:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);background:radial-gradient(circle at 50% 42%, #d9e4f28c, transparent 58%), color-mix(in srgb, var(--color-card) 92%, transparent);border-radius:1.15rem;height:min(32rem,100svh - 12rem);min-height:min(26rem,100svh - 14rem);position:relative;overflow:hidden}.skill-graph-expand{z-index:2;position:absolute;top:.75rem;right:.75rem}.skill-graph-expand-btn{border:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);color:#111;cursor:pointer;width:2.35rem;height:2.35rem;box-shadow:0 6px 16px color-mix(in srgb, var(--color-ink) 10%, transparent);background:#fff;border-radius:.7rem;place-items:center;padding:0;display:grid}html.dark .skill-graph-expand-btn{color:#f3f4f6;background:#171a20;border-color:#ffffff1f}.skill-graph-expand-btn:hover{background:#f7f7f8}html.dark .skill-graph-expand-btn:hover{background:#22262e}.skill-graph.is-expanded{z-index:95;border:1px solid color-mix(in srgb, var(--color-ink) 10%, transparent);background:color-mix(in srgb, var(--color-card) 96%, transparent);box-shadow:0 24px 60px color-mix(in srgb, var(--color-ink) 18%, transparent);backdrop-filter:blur(14px);border-radius:1.15rem;flex-direction:column;gap:.75rem;padding:.85rem 1rem 1rem;display:flex;position:fixed;inset:.75rem}.skill-graph.is-expanded .skill-graph-stage{flex:1;height:auto;min-height:0}html.dark .skill-graph-stage{background:radial-gradient(circle at 50% 42%, #1a2436b3, transparent 58%), color-mix(in srgb, var(--color-card) 94%, transparent)}.skill-graph-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.skill-graph-canvas:active{cursor:grabbing}.skill-graph-empty{text-align:center;color:var(--color-muted);margin:0;padding:2rem}.skill-graph-hint{text-align:center;color:var(--color-muted);margin:0;font-size:.78rem}.folio-skill-card{border:1px solid color-mix(in srgb, var(--color-ink) 7%, transparent);opacity:0;min-height:100%;transition:transform .3s,box-shadow .3s,opacity .65s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s);background:#fff;border-radius:1.2rem;flex-direction:column;padding:1.25rem 1.3rem 1.35rem;display:flex;position:relative;overflow:hidden;transform:translateY(10px);box-shadow:0 10px 28px #1418280b}.folio-skill-card:before{content:"";background:var(--skill-accent,#8a93a5);opacity:.55;border-radius:999px;width:2px;position:absolute;top:1.3rem;bottom:1.3rem;left:0}.folio-skill-card--code{--skill-accent:#61dafb}.folio-skill-card--server{--skill-accent:#68a063}.folio-skill-card--spark{--skill-accent:#1c3c3c}.folio-skill-card--cloud{--skill-accent:#336791}html.dark .folio-skill-card{background:color-mix(in srgb, var(--color-card) 94%, transparent);box-shadow:0 10px 28px #00000040}.skill-stack-panel.is-ready .folio-skill-card,.skill-stack-panel.is-ready .skill-graph-cta{opacity:1;transform:none}.skill-stack-panel.is-ready .folio-skill-list li{animation:.4s cubic-bezier(.16,1,.3,1) both folio-skill-item-in;animation-delay:calc(var(--reveal-delay,0s) + 50ms + var(--item-i,0) * 35ms)}.folio-skill-card:hover{transform:translateY(-2px);box-shadow:0 16px 36px #14182814}.folio-skill-card-title{letter-spacing:-.02em;margin:0 0 1rem;padding-left:.55rem;font-size:.95rem;font-weight:600}.folio-skill-list{gap:.45rem;margin:0;padding:0 0 0 .55rem;list-style:none;display:grid}.folio-skill-list li{color:var(--color-ink);opacity:0;align-items:center;gap:.65rem;font-size:.9rem;display:flex;transform:translateY(6px)}.skill-stack-panel.is-ready .folio-skill-list li{opacity:1;transform:none}.folio-skill-badge{border:1px solid color-mix(in srgb, var(--chip,var(--color-ink)) 16%, transparent);background:color-mix(in srgb, var(--chip,var(--color-ink)) 8%, #fff);border-radius:.55rem;flex:none;place-items:center;width:1.85rem;height:1.85rem;display:grid}html.dark .folio-skill-badge{background:color-mix(in srgb, var(--chip,#fff) 14%, transparent)}.folio-skill-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.folio-skill-icon{object-fit:contain;width:1rem;height:1rem;display:block}.folio-skill-mark{color:var(--chip,currentColor);letter-spacing:-.02em;place-items:center;font-size:.52rem;font-weight:700;line-height:1;display:grid}@keyframes folio-skill-item-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (width>=900px){.folio-about-orbit-frame{flex-wrap:nowrap;gap:2rem 3rem;min-height:0;padding:.5rem 0 1rem}.folio-about-orbit-visual{width:min(48vw,34rem)}.folio-about-orbit-copy{flex-basis:24rem;max-width:24rem}}@media (prefers-reduced-motion:reduce){.folio-skill-card,.skill-graph-cta{opacity:1;transition:none;transform:none}.skill-stack-panel.is-ready .folio-skill-list li,.folio-skill-list li{opacity:1;animation:none;transform:none}.folio-skill-card:hover{transform:none}}.folio-footer{margin-top:auto}.folio-footer-inner{border-top:1px solid color-mix(in srgb, var(--color-ink) 7%, transparent);flex-wrap:wrap;justify-content:space-between;gap:1.5rem;width:min(72rem,100% - 1.5rem);margin:0 auto;padding:2.5rem 0 3rem;display:flex}.folio-footer-brand{align-items:baseline;gap:.45rem;margin:0;display:inline-flex}.folio-footer-name{margin:0;font-size:2.5rem;line-height:1}.folio-footer-brand .site-brand-sub{font-size:1.55rem}.folio-footer-copy{max-width:28rem;color:var(--color-muted);margin-top:.7rem;font-size:.92rem;line-height:1.65}.folio-footer-meta{color:var(--color-muted);flex-wrap:wrap;align-items:end;gap:1rem;font-size:.82rem;display:flex}.folio-footer-meta a:hover{color:var(--color-ink)}[data-reveal]{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s);transform:translateY(14px)}[data-reveal].is-in{opacity:1;transform:none}.folio-works-filters.is-in .folio-filter{animation:.45s cubic-bezier(.16,1,.3,1) both folio-filter-in;animation-delay:calc(var(--filter-i,0) * 35ms)}.folio-work-card{--work-lift:0px;will-change:transform}.folio-work-card .folio-work-media{position:relative}.folio-work-shine{pointer-events:none;opacity:0;background:linear-gradient(115deg,#0000 30%,#ffffff6b 48%,#0000 62%);position:absolute;inset:0;transform:translate(-120%)skew(-12deg)}.folio-work-card:hover .folio-work-shine,.folio-work-card:focus-visible .folio-work-shine{opacity:1;animation:.85s cubic-bezier(.16,1,.3,1) folio-work-shine}.folio-work-card .folio-card-meta span:first-child{transition:transform .35s cubic-bezier(.16,1,.3,1),color .35s;display:inline-block}.folio-work-card:hover .folio-card-meta span:first-child{color:var(--color-leaf);transform:translate(2px)}.folio-work-card .folio-pill{transition:transform .3s cubic-bezier(.16,1,.3,1)}.folio-work-card:hover .folio-pill{transform:translateY(-1px)}.folio-notes-filters.is-in .folio-filter{animation:.5s cubic-bezier(.16,1,.3,1) both folio-note-filter-in;animation-delay:calc(60ms + var(--filter-i,0) * 45ms)}.folio-note-card[data-reveal]{opacity:0;filter:blur(8px);transform:translate3d(var(--note-x,0), 28px, 0) scale(.94);transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1),filter .75s cubic-bezier(.16,1,.3,1),box-shadow .35s;transition-delay:var(--reveal-delay,0s)}.folio-note-card[data-note-from=left]{--note-x:-36px}.folio-note-card[data-note-from=right]{--note-x:36px}.folio-note-card[data-reveal].is-in{opacity:1;filter:none;transform:none}.folio-note-card .folio-card-cover{position:relative;overflow:hidden}.folio-note-card .folio-card-cover img{transition:transform .9s cubic-bezier(.16,1,.3,1)}.folio-note-cover-glow{pointer-events:none;background:radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--color-leaf) 28%, transparent), transparent 55%);opacity:0;transition:opacity .45s;position:absolute;inset:-20%}.folio-note-card:hover .folio-card-cover img,.folio-note-card:focus-visible .folio-card-cover img{transform:scale(1.07)}.folio-note-card:hover .folio-note-cover-glow,.folio-note-card:focus-visible .folio-note-cover-glow{opacity:1}.folio-note-card[data-reveal].is-in:hover,.folio-note-card[data-reveal].is-in:focus-visible{transform:translateY(-6px);box-shadow:0 26px 56px #1418281f}.folio-note-card h3{display:inline-block;position:relative}.folio-note-card h3:after{content:"";background:linear-gradient(90deg, var(--color-leaf), transparent);transform-origin:0;width:100%;height:2px;transition:transform .4s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-.15em;left:0;transform:scaleX(0)}.folio-note-card:hover h3:after,.folio-note-card:focus-visible h3:after{transform:scaleX(1)}.folio-note-card .folio-badge{animation:2.4s ease-in-out infinite folio-badge-pulse}@keyframes folio-filter-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}@keyframes folio-note-filter-in{0%{opacity:0;transform:translateY(12px)scale(.9)}to{opacity:1;transform:none}}@keyframes folio-work-shine{0%{transform:translate(-120%)skew(-12deg)}to{transform:translate(120%)skew(-12deg)}}@keyframes folio-badge-pulse{0%,to{transform:scale(1);box-shadow:0 0 #0000}50%{transform:scale(1.04);box-shadow:0 0 0 6px #3b6fb61f}}@media (prefers-reduced-motion:reduce){.folio-figure-img,[data-reveal]{opacity:1;filter:none;transition:none;animation:none;transform:none}.folio-works-filters .folio-filter,.folio-notes-filters .folio-filter,.folio-work-shine,.folio-note-card .folio-badge,.folio-preview-btn:before{animation:none!important}.folio-work-card:hover .folio-work-shine,.folio-note-cover-glow{opacity:0!important}.folio-note-card:hover,.folio-note-card:focus-visible,.folio-preview-btn:hover,.folio-preview-btn:focus-visible{transform:none}}html.dark .folio-card,html.dark .folio-info-card,html.dark .folio-about-banner,html.dark .folio-filter{background:color-mix(in srgb, var(--color-card) 82%, transparent);border-color:#ffffff14}html.dark .folio-badge{color:#c5d9ff;background:#213146}.tech-field{opacity:.85;width:100%;height:100%;display:block}.assistant-fab-shell{z-index:90;touch-action:none;opacity:0;pointer-events:none;place-items:center;width:4.5rem;height:4.5rem;display:grid;position:fixed}.assistant-fab-shell.is-ready{opacity:1;pointer-events:auto}.assistant-fab-glow{pointer-events:none;filter:blur(6px);opacity:.65;background:radial-gradient(circle,#8eb8ff47 0%,#a8b8d01f 42%,#0000 70%);border-radius:999px;animation:3.8s ease-in-out infinite assistant-glow-breathe;position:absolute;inset:.05rem}.assistant-fab{z-index:1;width:3.45rem;height:3.45rem;color:var(--color-ink);box-shadow:0 1px 0 #fffc, 0 4px 10px #6b8cbe38, 0 14px 28px color-mix(in srgb, var(--color-ink) 14%, transparent), inset 0 -6px 12px #8aa4c82e, inset 0 1px 2px #ffffffe6;cursor:grab;isolation:isolate;background:radial-gradient(circle at 35% 28%,#fff 0%,#e8f0fa 55%,#d7e4f4 100%);border:2px solid #ffffffeb;border-radius:999px;place-items:center;padding:0;transition:box-shadow .25s,transform .25s;display:grid;position:relative;overflow:hidden}.assistant-fab:active{cursor:grabbing}.assistant-fab-shell:hover .assistant-fab{box-shadow:0 1px 0 #ffffffd9, 0 6px 14px #6b8cbe47, 0 18px 34px color-mix(in srgb, var(--color-ink) 16%, transparent), inset 0 -6px 12px #8aa4c829, inset 0 1px 2px #ffffffe6;transform:translateY(-1px)}.assistant-fab-shell:hover .assistant-fab-glow{opacity:1;filter:blur(7px)}.assistant-fab.is-open{background:color-mix(in srgb, var(--color-card) 96%, transparent);color:var(--color-ink)}.assistant-fab-shell.is-open .assistant-fab-glow{opacity:.3;animation:none}html.dark .assistant-fab{background:radial-gradient(circle at 35% 28%,#2a3344 0%,#171b24 70%,#12141a 100%);border-color:#ffffff2e;box-shadow:0 4px 12px #00000059,0 14px 32px #0006,inset 0 1px 1px #ffffff14}.assistant-fab-depth{filter:blur(4px);z-index:0;pointer-events:none;background:radial-gradient(#283c5a2e,#0000 70%);border-radius:50%;height:55%;position:absolute;inset:8% 10% auto}.assistant-fab-avatar{z-index:1;object-fit:cover;object-position:center 18%;filter:drop-shadow(0 3px 5px #28375047);transform-origin:50% 70%;border-radius:999px;width:112%;max-width:none;height:112%;animation:3.8s ease-in-out infinite assistant-avatar-float;display:block;position:relative}.assistant-fab-shine{z-index:2;pointer-events:none;border-radius:inherit;mix-blend-mode:soft-light;background:linear-gradient(145deg,#ffffff73 0%,#0000 38%),radial-gradient(circle at 70% 85%,#7896be1f,#0000 45%);position:absolute;inset:0}.assistant-fab-mark{z-index:1;font-size:1.25rem;font-weight:700;line-height:1;position:relative}.assistant-overlay{z-index:88;pointer-events:none;position:fixed;inset:0}.assistant-backdrop{pointer-events:auto;cursor:pointer;background:#0b10202e;border:0;animation:.22s assistant-fade;position:absolute;inset:0}.assistant-panel{z-index:1;pointer-events:auto;border:1px solid color-mix(in srgb, var(--color-ink) 10%, transparent);background:linear-gradient(180deg, #ffffffb3, transparent 40%), color-mix(in srgb, var(--color-card) 96%, transparent);width:min(26rem,100vw - 2rem);height:min(36rem,100vh - 5rem);box-shadow:0 24px 60px color-mix(in srgb, var(--color-ink) 18%, transparent);backdrop-filter:blur(16px);border-radius:1.25rem;flex-direction:column;animation:.32s cubic-bezier(.16,1,.3,1) assistant-rise;display:flex;position:fixed;overflow:hidden}html.dark .assistant-panel{background:linear-gradient(180deg, #1a20308c, transparent 45%), color-mix(in srgb, var(--color-card) 94%, transparent);border-color:#ffffff1a}.assistant-panel-head{border-bottom:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);cursor:grab;user-select:none;touch-action:none;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.85rem 1rem .75rem;display:flex}.assistant-panel-head:active{cursor:grabbing}.assistant-panel-drag{align-items:flex-start;gap:.55rem;min-width:0;display:flex}.assistant-panel-grip{opacity:.45;background:radial-gradient(circle, color-mix(in srgb, var(--color-muted) 80%, transparent) 1px, transparent 1.2px) 0 0 / .3rem .3rem, radial-gradient(circle, color-mix(in srgb, var(--color-muted) 80%, transparent) 1px, transparent 1.2px) .3rem 0 / .3rem .3rem;flex:none;width:.7rem;height:1.15rem;margin-top:.4rem}.assistant-panel-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:0;font-size:.72rem}.assistant-panel-title{color:var(--color-ink);margin:.15rem 0 0;font-size:1.15rem;font-weight:650}.assistant-panel-actions{gap:.35rem;display:flex}.assistant-ghost-btn,.assistant-speak-btn,.assistant-mic-btn,.assistant-send-btn{border:1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);color:var(--color-ink);cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .75rem;font-size:.78rem}.assistant-ghost-btn:hover,.assistant-speak-btn:hover{background:color-mix(in srgb, var(--color-wash) 70%, transparent)}.assistant-messages{flex-direction:column;flex:1;gap:.75rem;padding:1rem;display:flex;overflow:auto}.assistant-empty{text-align:center;max-width:16rem;color:var(--color-muted);margin:auto;font-size:.9rem;line-height:1.55}.assistant-bubble{border-radius:.9rem;max-width:92%;padding:.7rem .85rem;font-size:.92rem;line-height:1.55}.assistant-bubble-user{background:color-mix(in srgb, var(--color-leaf) 18%, var(--color-wash));color:var(--color-ink);align-self:flex-end}.assistant-bubble-assistant{background:color-mix(in srgb, var(--color-wash) 80%, transparent);border:1px solid color-mix(in srgb, var(--color-ink) 6%, transparent);align-self:flex-start}.assistant-bubble-user p,.assistant-bubble-assistant p{white-space:pre-wrap;margin:0}.assistant-md :where(p,ul,ol,pre,blockquote){margin:0 0 .55rem}.assistant-md :where(p:last-child,ul:last-child,ol:last-child,pre:last-child){margin-bottom:0}.assistant-md pre{background:color-mix(in srgb, var(--color-ink) 8%, transparent);border-radius:.55rem;padding:.65rem .75rem;font-size:.8rem;overflow:auto}.assistant-md code{font-size:.84em}.assistant-md.is-streaming:after{content:"|";width:.4rem;margin-left:.1rem;animation:1s step-end infinite assistant-blink;display:inline-block}.assistant-typing{color:var(--color-muted)}.assistant-speak-btn{margin-top:.45rem}.assistant-error{color:#b42318;margin:0;padding:0 1rem .5rem;font-size:.82rem}.assistant-composer{border-top:1px solid color-mix(in srgb, var(--color-ink) 8%, transparent);flex-direction:column;gap:.55rem;padding:.75rem 1rem 1rem;display:flex}.assistant-composer textarea{resize:none;border:1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);background:color-mix(in srgb, var(--color-card) 88%, transparent);width:100%;color:var(--color-ink);font:inherit;border-radius:.85rem;outline:none;padding:.7rem .8rem}.assistant-composer textarea:focus{border-color:color-mix(in srgb, var(--color-leaf) 55%, var(--color-ink))}.assistant-composer-bar{justify-content:space-between;gap:.5rem;display:flex}.assistant-mic-btn.is-recording{color:#b42318;background:#ef44442e;border-color:#ef444473}.assistant-send-btn{background:var(--color-ink);color:var(--color-paper);border-color:#0000;padding-inline:1.1rem}.assistant-send-btn:disabled,.assistant-mic-btn:disabled,.assistant-ghost-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes assistant-rise{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes assistant-fade{0%{opacity:0}to{opacity:1}}@keyframes assistant-blink{50%{opacity:0}}@keyframes assistant-glow-breathe{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:.9;transform:scale(1.04)}}@keyframes assistant-avatar-float{0%,to{transform:translateY(1px)scale(1)}50%{transform:translateY(-2px)scale(1.035)}}@media (width<=640px){.assistant-panel{width:calc(100vw - 1.5rem);height:min(70vh,34rem)}}@media (prefers-reduced-motion:reduce){.assistant-fab-glow,.assistant-fab-avatar,.assistant-panel,.assistant-backdrop{animation:none}}
