:root{--plate: #17122A;--plate-2: #221A3D;--plate-3: #0F0B1D;--paper: #F0EFF7;--panel: #FFFFFF;--ink: #1C1830;--ink-soft: #565073;--rule: #D3CFE6;--rule-soft: #E5E2F0;--peri: #6E74E8;--peri-deep: #4A4FC4;--peri-bright: #9BA0FF;--amber: #B0781C;--display: "Archivo", system-ui, sans-serif;--serif: "Source Serif 4", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--maxw: 1120px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #120E22;--panel: #1C1636;--ink: #E9E7F7;--ink-soft: #A29CC4;--rule: #352D55;--rule-soft: #282146;--peri: #9BA0FF;--peri-deep: #AFB3FF;--amber: #D7A33F}}:root[data-theme=dark]{--paper: #120E22;--panel: #1C1636;--ink: #E9E7F7;--ink-soft: #A29CC4;--rule: #352D55;--rule-soft: #282146;--peri: #9BA0FF;--peri-deep: #AFB3FF;--amber: #D7A33F}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}img{max-width:100%}a{color:var(--peri-deep)}:focus-visible{outline:2px solid var(--peri);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}h1,h2,h3,h4,button,nav,.ui{font-family:var(--display)}h2{font-size:clamp(27px,3.3vw,40px);line-height:1.1;letter-spacing:-.024em;font-weight:600;margin:0 0 8px}h3{font-size:19px;letter-spacing:-.01em;font-weight:600;margin:0}p{max-width:68ch}.lede{color:var(--ink-soft);font-size:18px;margin:0 0 34px;max-width:62ch}section{padding:78px 0;border-bottom:1px solid var(--rule-soft)}.secHead{margin-bottom:32px}.skipLink{position:absolute;left:-9999px;top:0;z-index:100;background:var(--panel);color:var(--ink);padding:10px 16px;border-radius:3px}.skipLink:focus{left:16px;top:16px}.hero{position:relative;background:var(--plate);color:#edebfa;overflow:hidden;padding-bottom:48px}.sf{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;animation:fi 1.6s ease-out .15s forwards}@keyframes fi{to{opacity:1}}.hero .wrap{position:relative;z-index:2}.heroTop{display:flex;justify-content:space-between;align-items:center;padding:20px 0 0;gap:16px}.sig{font-family:var(--display);font-weight:600;font-size:15px;color:#edebfa}.themeBtn{background:transparent;border:1px solid rgba(237,235,250,.3);color:#edebfa;border-radius:3px;padding:6px 11px;font-size:12.5px;cursor:pointer}.themeBtn:hover{border-color:#edebfaa6}.heroMain{padding:90px 0 58px;max-width:790px}.heroName{font-size:clamp(48px,9vw,102px);line-height:.92;letter-spacing:-.045em;font-weight:700;margin:0 0 24px}.heroName span{display:block}.heroBlurb{font-family:var(--serif);font-size:clamp(17.5px,2vw,21px);line-height:1.52;color:#bfb9e4;max-width:55ch;margin:0 0 18px}.heroSub{font-family:var(--display);font-size:15px;color:#9b93c9;margin:0 0 32px;max-width:58ch}.heroActions{display:flex;flex-wrap:wrap;gap:12px}.btn{font-family:var(--display);font-size:14.5px;font-weight:500;border-radius:3px;padding:11px 18px;cursor:pointer;border:1px solid transparent;text-decoration:none;display:inline-block}.btn-solid{background:var(--peri-bright);color:var(--plate-3)}.btn-solid:hover{background:#b9bdff}.btn-ghost{border-color:#edebfa61;color:#edebfa;background:transparent}.btn-ghost:hover{border-color:#edebfa}.btn-primary{background:var(--peri-deep);color:#fff;width:100%;text-align:center}.btn-primary:hover{filter:brightness(1.14)}.origins{border-top:1px solid rgba(237,235,250,.16);padding-top:26px}.originsHead{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:16px}.originsHead h2{font-size:15px;font-weight:500;color:#a79fd4;letter-spacing:0;margin:0}.originsHead .note{font-family:var(--mono);font-size:11px;color:#7a72a8}.originFeature{border:1px solid rgba(237,235,250,.2);border-radius:3px;overflow:hidden;background:var(--plate-2);margin-bottom:24px}.originFeature figure{margin:0;aspect-ratio:21/9}.originFeature img,.originFeature svg{display:block;width:100%;height:100%;object-fit:cover}.originFeature figcaption{padding:9px 13px;border-top:1px solid rgba(237,235,250,.15);font-family:var(--mono);font-size:10.5px;color:#8a82b8}.originRow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}@media (max-width: 820px){.originRow{grid-template-columns:1fr;gap:22px}}.origin{border-top:1px solid rgba(237,235,250,.24);padding-top:13px}.origin h3{font-size:15px;color:#dfdbf2;margin-bottom:3px;line-height:1.3}.origin .src{font-family:var(--mono);font-size:10px;color:#8a82b8;display:block;margin-bottom:9px}.origin p{font-family:var(--serif);font-size:14.5px;line-height:1.52;color:#a9a1d6;margin:0}.nav{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--paper) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule-soft)}.nav .wrap{display:flex;gap:2px;align-items:center;height:52px;overflow-x:auto;scrollbar-width:none}.nav .wrap::-webkit-scrollbar{display:none}.nav a{font-family:var(--display);font-size:14px;color:var(--ink-soft);text-decoration:none;padding:6px 11px;border-radius:3px;white-space:nowrap}.nav a:hover{color:var(--ink);background:var(--rule-soft)}.nav .spacer{flex:1}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:34px}@media (max-width: 860px){.pillars{grid-template-columns:1fr;gap:22px}}.pillar{border-top:2px solid var(--peri);padding-top:14px}.pillar h3{font-size:17px;margin-bottom:7px}.pillar p{font-size:15.5px;color:var(--ink-soft);margin:0}.fitBox{margin-top:40px;background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:24px 26px}.fitBox h3{font-size:16px;margin-bottom:10px}.fitBox p{font-size:16px;color:var(--ink-soft);margin:0 0 12px}.fitBox p:last-child{margin-bottom:0}.pub{padding:20px 0;border-top:1px solid var(--rule-soft)}.pub:first-child{border-top:none;padding-top:0}.pubHead{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:5px}.pubRole{font-family:var(--display);font-size:12px;font-weight:600;color:var(--peri-deep);border:1px solid color-mix(in srgb,var(--peri) 45%,transparent);border-radius:2px;padding:2px 7px}.pubStatus{font-family:var(--mono);font-size:11px;color:var(--amber);margin-left:auto}.pub h3{font-size:18px;line-height:1.35}.pub p{font-size:15.5px;color:var(--ink-soft);margin:6px 0 0}.pending{border:1px dashed var(--rule);border-radius:3px;padding:18px 20px;margin-top:22px;color:var(--ink-soft);font-size:15px}.filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:26px}.chip{font-family:var(--display);font-size:13px;padding:6px 12px;border-radius:3px;cursor:pointer;border:1px solid var(--rule);background:transparent;color:var(--ink-soft)}.chip:hover{border-color:var(--peri);color:var(--ink)}.chip[aria-pressed=true]{background:var(--peri-deep);border-color:var(--peri-deep);color:#fff}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}@media (max-width: 960px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.grid{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--rule);border-radius:3px;display:flex;flex-direction:column;text-align:left;padding:0;cursor:pointer;font:inherit;color:inherit;overflow:hidden}.card:hover{border-color:var(--peri)}.cardTop{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--rule-soft);background:var(--paper)}.cardDate{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft)}.status{font-family:var(--display);font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:2px}.status.wip{color:var(--amber);border:1px solid color-mix(in srgb,var(--amber) 48%,transparent)}.status.done{color:var(--peri-deep);border:1px solid color-mix(in srgb,var(--peri) 45%,transparent)}.cardMedia{aspect-ratio:3/2;border-bottom:1px solid var(--rule-soft);overflow:hidden}.cardMedia img{width:100%;height:100%;object-fit:cover;display:block}.cardBody{padding:14px 15px 17px;flex:1;display:flex;flex-direction:column}.cardOrg{font-family:var(--display);font-size:12.5px;color:var(--peri-deep);margin-bottom:4px}.cardBody p{font-size:14.5px;line-height:1.5;color:var(--ink-soft);margin:7px 0 13px;flex:1}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-family:var(--display);font-size:11px;color:var(--ink-soft);border:1px solid var(--rule-soft);border-radius:2px;padding:2px 7px}.ph{width:100%;height:100%;display:block}dialog{border:none;padding:0;background:transparent;max-width:900px;width:calc(100% - 32px)}dialog::backdrop{background:#0f0b1da8}.sheet{background:var(--panel);border:1px solid var(--rule);border-radius:4px;max-height:86vh;overflow:auto}.sheetHead{position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--rule-soft);padding:18px 22px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start;z-index:2}.sheetHead h3{font-size:23px;letter-spacing:-.018em}.closeX{background:transparent;border:1px solid var(--rule);border-radius:3px;color:var(--ink-soft);width:30px;height:30px;cursor:pointer;flex:none;font-size:15px}.sheetBody{padding:22px}.sheetBody h4{font-size:13px;font-weight:600;margin:24px 0 6px}.sheetBody h4:first-child{margin-top:0}.sheetBody>p{font-size:16px;margin:0;color:var(--ink-soft)}.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}@media (max-width: 640px){.gal{grid-template-columns:repeat(2,1fr)}}.galItem{border:1px solid var(--rule);border-radius:3px;overflow:hidden;background:var(--paper)}.galMedia{aspect-ratio:4/3}.galMedia img{width:100%;height:100%;object-fit:cover;display:block}.galCap{font-size:12.5px;font-family:var(--display);color:var(--ink-soft);padding:7px 9px;border-top:1px solid var(--rule-soft)}.log{list-style:none;margin:8px 0 0;padding:0;border-left:1px solid var(--rule)}.log li{padding:0 0 14px 16px;position:relative}.log li:before{content:"";position:absolute;left:-3.5px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--peri)}.log time{font-family:var(--mono);font-size:11px;color:var(--ink-soft);display:block}.log span{font-size:15.5px}.embargo{background:color-mix(in srgb,var(--amber) 9%,transparent);border:1px solid color-mix(in srgb,var(--amber) 32%,transparent);border-radius:3px;padding:11px 14px;font-size:14.5px;color:var(--ink-soft);margin-top:18px}.twoCol{display:grid;grid-template-columns:1fr 300px;gap:46px;align-items:start}@media (max-width: 880px){.twoCol{grid-template-columns:1fr;gap:32px}}.entry{padding:18px 0;border-top:1px solid var(--rule-soft)}.entry:first-of-type{border-top:none;padding-top:0}.entryHead{display:flex;justify-content:space-between;gap:16px;align-items:baseline;flex-wrap:wrap}.entryOrg{font-size:14.5px;color:var(--peri-deep);font-family:var(--display)}.entryWhen{font-family:var(--mono);font-size:11px;color:var(--ink-soft)}.entry p{font-size:15.5px;color:var(--ink-soft);margin:7px 0 0}.otherHead{margin:40px 0 0;padding-top:26px;border-top:1px solid var(--rule)}.otherHead h3{font-size:15px;font-weight:500;color:var(--ink-soft);margin-bottom:8px}.otherHead p{font-size:15.5px;color:var(--ink-soft);margin:0 0 4px;max-width:64ch}.resumeBox{background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:20px}.resumeBox h3{font-size:16px;margin-bottom:5px}.resumeBox p{font-size:14.5px;color:var(--ink-soft);margin:0 0 15px}.skillRow{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--rule-soft);font-size:14.5px}.skillRow dt{font-family:var(--display);font-size:12.5px;width:96px;flex:none;color:var(--ink-soft)}.skillRow dd{margin:0}.awards{margin-top:24px;font-size:14.5px;color:var(--ink-soft)}.awards h3{font-size:15px;font-weight:500;color:var(--ink-soft);margin-bottom:10px}.awards ul{padding-left:18px;margin:0}.awards li{margin-bottom:5px}.aboutGrid{display:grid;grid-template-columns:230px 1fr;gap:44px;align-items:start}@media (max-width: 760px){.aboutGrid{grid-template-columns:1fr;gap:26px}}.portrait{border-radius:3px;border:1px solid var(--rule);width:100%;display:block}.aboutGrid p{margin:0 0 16px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin-bottom:26px}.tab{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:var(--display);font-size:14.5px;color:var(--ink-soft);padding:9px 13px;cursor:pointer}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--peri)}.shelfGroup{margin-bottom:34px}.shelfGroup h3{font-size:15px;color:var(--ink-soft);font-weight:500;margin-bottom:14px}.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(146px,1fr));gap:18px}.book{display:flex;flex-direction:column;gap:8px}.spine{aspect-ratio:2/3;border-radius:2px;border:1px solid var(--rule);overflow:hidden}.book b{font-family:var(--display);font-size:13.5px;font-weight:600;line-height:1.3}.book em{font-style:normal;font-size:12.5px;color:var(--ink-soft)}.photoGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.gbWrap{display:grid;grid-template-columns:330px 1fr;gap:42px;align-items:start}@media (max-width: 880px){.gbWrap{grid-template-columns:1fr}}.field{margin-bottom:13px}.field label{display:block;font-family:var(--display);font-size:13px;margin-bottom:5px;color:var(--ink-soft)}input,textarea{width:100%;font:inherit;font-size:15px;padding:9px 11px;border-radius:3px;border:1px solid var(--rule);background:var(--panel);color:var(--ink);font-family:var(--serif)}textarea{resize:vertical;min-height:84px}input:focus,textarea:focus{border-color:var(--peri)}.hp{position:absolute;left:-9999px}.hint{font-size:13px;color:var(--ink-soft);margin:10px 0 0}.gbEntry{padding:15px 0;border-top:1px solid var(--rule-soft)}.gbEntry:first-child{border-top:none;padding-top:0}.gbMeta{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.gbName{font-family:var(--display);font-weight:600;font-size:15px}.gbFrom{font-size:13.5px;color:var(--peri-deep)}.gbTime{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);margin-left:auto}.gbMsg{font-size:15.5px;margin:5px 0 0;color:var(--ink-soft)}.empty{border:1px dashed var(--rule);border-radius:3px;padding:26px;text-align:center;color:var(--ink-soft);font-size:15px}footer{padding:40px 0 58px;color:var(--ink-soft);font-size:14px}footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}footer a{color:var(--ink-soft);margin-right:16px}.mono{font-family:var(--mono);font-size:11px}
