@import "https://fonts.googleapis.com/css2?family=Martian+Mono:wght@300..700&family=JetBrains+Mono:wght@200..700&display=swap";
@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.woff2)format("woff2-variations");font-weight:45 920;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#100e1a;--ink:#fffffff7;--ink2:#ffffffb8;--ink3:#ffffff80;--mono:"Martian Mono","Pretendard",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--sans:"JetBrains Mono","Pretendard",ui-monospace,"SF Mono",Menlo,monospace;--display:"Pretendard",-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;--acc:#9b8fff;--track-block:-.045em;--track-tight:-.03em;--track-caps:.14em;--track-caps-lg:.04em;--lh-block:.88;--lh-tight:1.02;--w-thin:100;--w-xlight:200;--w-light:300;--w-reg:400;--w-med:500;--w-semi:600;--w-bold:700;--w-xbold:800;--w-black:900}.t-block{font-family:var(--display);font-weight:var(--w-xbold);text-transform:uppercase;letter-spacing:var(--track-block);line-height:var(--lh-block);margin:0}.t-block.heavy{font-weight:var(--w-black)}.t-block.xl{font-size:clamp(48px,12vw,168px)}.t-block.lg{font-size:clamp(34px,7vw,92px)}.t-caps{font-family:var(--display);font-weight:var(--w-light);text-transform:uppercase;letter-spacing:var(--track-caps-lg);line-height:var(--lh-tight);margin:0}.t-caps.thin{font-weight:var(--w-thin)}.t-caps.sm{font-family:var(--sans);letter-spacing:var(--track-caps);color:var(--ink3);font-size:12px}.t-sub{font-family:var(--display);font-weight:var(--w-light);letter-spacing:var(--track-tight);margin:0;line-height:1.12}.t-lead{font-family:var(--sans);font-weight:var(--w-xlight);letter-spacing:.002em;font-size:clamp(18px,2vw,24px);line-height:1.5}.t-body{font-family:var(--sans);font-weight:var(--w-light);line-height:1.6}.t-body strong,.t-strong{font-weight:var(--w-reg)}.macro{font-family:var(--display);font-weight:var(--w-black);-webkit-user-select:none;user-select:none;line-height:.8;display:inline-block}.macro.ast{font-weight:var(--w-bold)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--sans);margin:0;overflow:hidden}#c{cursor:crosshair;z-index:1;touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#glass{z-index:6;pointer-events:none;width:100%;height:100%;display:block;position:fixed;inset:0}#vig{pointer-events:none;z-index:2;background:radial-gradient(120% 120% at 50% 46%,#0000 55%,#05060a80);position:fixed;inset:0}#wordmark{z-index:13;font-family:var(--display),sans-serif;letter-spacing:.34em;color:var(--ink);font-size:14px;font-weight:400;position:fixed;top:18px;left:22px}#tabs{z-index:12;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:16px 18px 14px;transition:opacity .35s;display:flex;position:fixed;top:0;left:0;right:0}#tabs .t{font-family:var(--mono);letter-spacing:.16em;color:var(--ink2);text-transform:uppercase;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a1059;border:1.5px solid #ffffff47;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:11px;transition:all .2s;display:flex}#tabs .t i{opacity:.85;border-radius:50%;width:7px;height:7px}#tabs .t.on{color:var(--ink);border-color:#ffffff8c}#minilbl{z-index:12;font-family:var(--mono);letter-spacing:.2em;color:var(--ink3);font-size:10px;position:fixed;top:48px;left:22px}#mini{z-index:12;cursor:pointer;-webkit-backdrop-filter:blur(16px)saturate(1.3);background:#080a1038;border:1px solid #ffffff29;border-radius:12px;width:204px;height:138px;position:fixed;top:62px;left:18px;box-shadow:0 14px 40px #0000004d,inset 0 1px #ffffff38}#crumb{display:none!important}#crumb b{color:var(--ink)}#crumb .n{color:var(--ink3);margin-left:8px}#tip{z-index:14;pointer-events:none;opacity:0;font-family:var(--mono);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#080a10d1;border:1px solid #ffffff29;border-radius:8px;padding:8px 11px;transition:opacity .12s;position:fixed;transform:translate(-50%,-130%)}#tip .nm{letter-spacing:.08em;color:var(--ink);font-size:12px}#tip .nm .tdot{vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}#tip .kc{letter-spacing:.1em;color:var(--ink3);text-transform:uppercase;margin-top:3px;font-size:10px}#tip .go{letter-spacing:.14em;color:var(--acc);text-transform:uppercase;margin-top:5px;font-size:9.5px}#tip:after{content:"";background:#080a10d1;border-bottom:1px solid #ffffff29;border-right:1px solid #ffffff29;width:8px;height:8px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}#pagetop{z-index:15;font-family:var(--mono);letter-spacing:.12em;color:var(--ink2);opacity:0;pointer-events:none;align-items:center;gap:14px;font-size:11px;transition:opacity .25s;display:flex;position:fixed;top:13px;right:132px}#pagetop .back{cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a1080;border:1px solid #ffffff2e;border-radius:999px;padding:8px 14px;line-height:16px}#pagetop .back:hover{border-color:#ffffff8c}#pagetop .num{color:var(--acc)}#page{z-index:10;opacity:0;pointer-events:none;position:fixed;inset:0;overflow:hidden auto}#page .spacer{cursor:zoom-out;justify-content:center;align-items:flex-end;height:46vh;padding-bottom:14px;display:flex}#page .spacer .ret{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);opacity:.7;background:#080a1066;border:1px solid #ffffff1f;border-radius:999px;padding:5px 12px;font-size:10px}#page .doc{background:linear-gradient(#0000,#070910 7% 13%);min-height:62vh;padding:0 7vw 100px;position:relative}#page .kicker{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--acc);padding-top:6px;font-size:11px}#page .lead{color:var(--ink);max-width:58ch;margin:16px 0;font-size:clamp(18px,1.6vw,22px);line-height:1.58}#page .cta{font-family:var(--mono);letter-spacing:.04em;color:#05060a;background:var(--acc);border-radius:8px;margin-top:6px;padding:11px 17px;font-size:12px;text-decoration:none;display:inline-block}#page .links{flex-wrap:wrap;gap:10px;margin:18px 0 4px;display:flex}#page .lk{font-family:var(--mono);letter-spacing:.03em;color:var(--ink);cursor:pointer;border:1px solid #ffffff38;border-radius:8px;padding:9px 14px;font-size:12px;text-decoration:none;transition:all .16s}#page .lk:hover{border-color:var(--acc);color:var(--acc)}#page .resume-download{color:#05060a;background:var(--acc);border-color:var(--acc);font-weight:700}#page .resume-download:hover{color:#05060a;filter:brightness(1.1)}#page .resume-download:focus-visible{outline:2px solid var(--ink);outline-offset:3px}#page .pgfoot{border-top:1px solid #ffffff1a;flex-wrap:wrap;gap:12px;margin-top:48px;padding-top:20px;display:flex}#page .contactwrap{grid-template-columns:.78fr 1fr;align-items:start;gap:34px;margin:26px 0 6px;display:grid}#page .cphoto{aspect-ratio:4/5;background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--acc) 28%,transparent),#ffffff08 66%);border:1px solid #ffffff1f;border-radius:14px;position:relative;overflow:hidden}#page .cphoto .cph{font-family:var(--mono);letter-spacing:.14em;color:var(--ink3);place-items:center;font-size:12px;display:grid;position:absolute;inset:0}#page .cphoto img{z-index:1;object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}#page .cform{flex-direction:column;display:flex}@media (max-width:760px){#page .contactwrap{grid-template-columns:1fr;gap:18px}#page .cphoto{aspect-ratio:1;max-width:240px}}#page .meta{border-top:1px solid #ffffff1a;border-bottom:1px solid #ffffff1a;flex-wrap:wrap;gap:30px;margin:30px 0;padding:16px 0;display:flex}#page .repos{margin:-8px 0 26px}#page .repolab{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);margin-bottom:10px;font-size:10.5px}#page .repolist{flex-wrap:wrap;gap:7px;display:flex}#page .repo{font-family:var(--mono);letter-spacing:.01em;color:var(--ink2);border:1px solid #ffffff24;border-radius:6px;padding:5px 10px;font-size:11.5px;text-decoration:none;transition:all .14s}#page .repo:hover{border-color:var(--acc);color:var(--acc)}#page .pcwrap{margin:34px 0 8px}#page .pcards{grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:14px;margin-top:12px;display:grid}#page .pc{background:#ffffff07;border:1px solid #ffffff21;border-radius:12px;transition:border-color .16s,background .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}#page .pc:hover{border-color:#ffffff42}#page .pc.is-selected{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 6%,#ffffff07);box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 28%,transparent)}#page .pc-hit{z-index:2;cursor:pointer;background:0 0;border:0;position:absolute;inset:0}#page .pc-hit:focus-visible{outline:2px solid var(--acc);outline-offset:-4px;border-radius:10px}#page .pc-th{background:#07080c;flex:none;align-self:stretch;width:186px}#page .pc-th img{object-fit:cover;width:100%;height:100%;display:block}#page .pc-th.none{width:0}#page .pc-b{flex-direction:column;flex:1;gap:9px;min-width:0;padding:15px 17px 14px;display:flex}#page .pc-n{font-family:var(--mono);color:var(--ink);word-break:break-all;font-size:13.5px}#page .pc-d{color:var(--ink2);word-break:keep-all;font-size:12.5px;line-height:1.75}#page .pc-sk{flex-wrap:wrap;gap:6px;display:flex}#page .pc-s{font-family:var(--mono);color:var(--acc);border:1px solid #06d6c466;border-radius:999px;padding:3px 9px;font-size:10.5px}#page .pc-a{z-index:3;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:3px;display:flex;position:relative}#page .pc-code,#page .pc-go{font-family:var(--mono);border-radius:7px;padding:7px 12px;font-size:11px;text-decoration:none;transition:all .14s}#page .pc-code{color:var(--ink2);border:1px solid #fff3}#page .pc-code:hover{border-color:var(--acc);color:var(--acc)}#page .pc-go{color:#05060a;background:var(--acc);border:1px solid var(--acc);font-weight:700}#page .pc-go:hover{filter:brightness(1.12)}#page .pc-note{font-family:var(--mono);color:var(--ink3);border:1px dashed #ffffff2e;border-radius:7px;padding:6px 10px;font-size:10.5px}body.light #page .pc{background:#00000006;border-color:#00000024}body.light #page .pc.is-selected{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 8%,#ffffffb3)}body.light #page .pc-code,body.light #page .pc-note{border-color:#0003}#page .meta .k{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);font-size:10.5px}#page .meta .v{font-family:var(--sans);color:var(--ink);max-width:34ch;margin-top:5px;font-size:15px}#page .media{max-width:780px;margin:28px 0}#page .seclab{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--acc);margin:46px 0 4px;font-size:11px}#page .seclab2{color:var(--ink3);margin:0 0 20px;font-size:13.5px}.mediaframe{aspect-ratio:16/10;background:radial-gradient(120% 120% at 30% 20%,#b8e62e1f,#ffffff08 60%,#0003);border:1px solid #ffffff1a;border-radius:12px;position:relative;overflow:hidden}.mediaframe img,.mediaframe video{object-fit:cover;width:100%;height:100%;display:block}.mediaframe iframe{background:#0c0e14;border:0;width:100%;height:100%;display:block}body.light .mediaframe iframe{background:#efe7d4}.mediaframe.emb{aspect-ratio:4/3}.embfull{font-family:var(--mono);letter-spacing:.07em;color:var(--cc);border:1px solid var(--cc);border-radius:999px;margin-top:10px;padding:8px 15px;font-size:11px;text-decoration:none;transition:all .16s;display:inline-block}.embfull:hover{background:color-mix(in srgb,var(--cc) 12%,transparent)}@media (max-width:760px){#page .media{max-width:none}.mediaframe.emb{aspect-ratio:3/4;border-left:none;border-right:none;border-radius:0;width:calc(100% + 12vw);margin-left:-6vw}#page .pcards{grid-template-columns:minmax(0,1fr)}#page .pc{flex-direction:column}#page .pc-th{aspect-ratio:16/9;width:100%}}.mediaframe.clk{cursor:pointer}.gview{width:100%;height:100%}.gnav{z-index:3;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a108c;border:1px solid #ffffff47;border-radius:999px;width:36px;height:36px;font-size:18px;line-height:1;transition:all .15s;position:absolute;top:50%;transform:translateY(-50%)}.gnav:hover{border-color:#fff}.gprev{left:10px}.gnext{right:10px}body.light .gnav{color:#111;background:#ffffffa6;border-color:#00000040}.imgstrip .it{cursor:pointer;opacity:.8;transition:opacity .15s}.imgstrip .it:hover,.imgstrip .it.on{opacity:1}.imgstrip .it.on{border-radius:6px;box-shadow:0 0 0 2px #ffffff8c}.mediaframe.noimg:after{content:"이미지 준비 중";font-family:var(--mono);letter-spacing:.1em;color:var(--ink3);place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.cap{font-family:var(--mono);letter-spacing:.06em;color:var(--ink3);margin-top:8px;font-size:10.5px;display:block}.cardgrid{grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:14px;max-width:1060px;display:grid}.ncard{cursor:pointer;background:#ffffff05;border:1px solid #ffffff1f;border-radius:13px;flex-direction:column;text-decoration:none;transition:all .16s;display:flex;overflow:hidden}.ncard:hover{border-color:var(--cc);background:#ffffff0d;transform:translateY(-2px)}.cthumb{aspect-ratio:16/9;background:#ffffff0a;position:relative;overflow:hidden}.cthumb .cph{text-align:center;font-family:var(--mono);letter-spacing:.04em;color:var(--ink2);background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--cc) 30%,transparent),#ffffff05 66%);place-items:center;padding:8px;font-size:10px;display:grid;position:absolute;inset:0}.cthumb img,.cthumb video{z-index:1;object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.ncard .cbody{flex-direction:column;flex:1;gap:6px;padding:14px 15px 15px;display:flex}.ncard .ct{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);align-items:center;gap:8px;font-size:9px;display:flex}.ncard .ct i{background:var(--cc);border-radius:50%;width:7px;height:7px}.ncard .cn{font-family:var(--display);color:var(--ink);letter-spacing:-.01em;font-size:19px;font-weight:700;line-height:1.18}.ncard .ck{color:var(--ink2);font-size:15px;line-height:1.52}.ncard .cgo{font-family:var(--mono);letter-spacing:.1em;color:var(--cc);opacity:0;margin-top:auto;font-size:10px;transition:all .16s}.ncard:hover .cgo{opacity:1}.ncard.ncardA{background:var(--ag);border-color:#0000}.ncard.ncardA:hover{filter:brightness(1.08)saturate(1.1);background:var(--ag);transform:translateY(-2px)}.ncard.ncardA .cbody{padding-top:16px}.ncard.ncardA .ct{color:#06070d99}.ncard.ncardA .ct i{background:#06070d}.ncard.ncardA .cn{color:#06070d}.ncard.ncardA .ck{color:#06070db8}.ncard.ncardA .cgo{color:#06070d;opacity:.85}#coldtitle{z-index:16;pointer-events:none;font-family:var(--display),sans-serif;letter-spacing:.5em;color:var(--ink);opacity:0;text-indent:.5em;justify-content:center;align-items:center;font-size:clamp(28px,7vw,84px);font-weight:400;display:flex;position:fixed;inset:0}#caminos .camino{z-index:11;font-family:var(--mono);letter-spacing:.06em;color:var(--ink);border:1px solid var(--cc);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;opacity:0;background:#080a108c;border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:11px;transition:opacity .25s;display:flex;position:fixed;transform:translate(-50%,-50%)}#caminos .camino i{background:var(--cc);border-radius:50%;width:8px;height:8px}#caminos .camino .ca{color:var(--cc);opacity:.75;font-size:10px}#caminos .camino:hover{background:#080a10d9}#hint{z-index:9;font-family:var(--mono);letter-spacing:.1em;color:var(--ink3);text-align:right;max-width:46vw;font-size:10px;transition:opacity .3s;position:fixed;bottom:16px;right:18px}#privacylink{z-index:9;font-family:var(--mono);letter-spacing:.12em;color:var(--ink3);font-size:10px;text-decoration:none;position:fixed;bottom:16px;left:18px}#privacylink:hover{color:var(--ink);text-decoration:underline}@media (max-width:760px){#privacylink{bottom:84px}}body.origen #privacylink{display:none}#tabslead{font-family:var(--mono);letter-spacing:.22em;color:var(--ink3);text-transform:uppercase;white-space:nowrap;align-items:center;gap:6px;padding-right:4px;font-size:9px;display:flex}#tabslead:after{content:"›";color:var(--ink3);font-size:14px;transform:translateY(-1px)}#tabs .t.on{color:#05060a;border-color:#0000;font-weight:600}#mtip{z-index:14;pointer-events:none;opacity:0;font-family:var(--mono);letter-spacing:.05em;color:var(--ink);white-space:nowrap;background:#080a10eb;border:1px solid #fff3;border-radius:7px;padding:5px 9px;font-size:10.5px;transition:opacity .12s;position:fixed;transform:translate(-50%,-138%)}#mtip .mr{color:var(--ink3);letter-spacing:.14em;text-transform:uppercase;margin-top:2px;font-size:8.5px}#gallery{z-index:11;opacity:0;pointer-events:none;background:0 0;border-left:1px solid #ffffff21;width:50vw;min-width:440px;padding:70px clamp(28px,4vw,64px) 40px;transition:opacity .3s,transform .3s;display:block;position:fixed;top:0;bottom:0;right:0;overflow:hidden auto;transform:translate(26px);box-shadow:-26px 0 70px #00000061}#gallery .gcaplab2{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);align-items:center;gap:9px;margin:30px 0 12px;font-size:9px;display:flex}#gallery .gcaplab2:after{content:"";background:#ffffff1a;flex:1;height:1px}#gallery.show{opacity:1;pointer-events:auto;transform:none}body.noglass #gallery{-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);background:linear-gradient(255deg,#0c0f17e6,#0c0f17cc)}#gallery::-webkit-scrollbar{width:7px}#gallery::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:4px}#gallery .ghead{font-family:var(--mono);align-items:center;gap:9px;display:flex}#gallery .ghead i{width:9px;height:9px;box-shadow:0 0 10px var(--cc);border-radius:50%}#gallery .ghead .gtag{letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);font-size:9px}#gallery .gname{letter-spacing:-.012em;color:var(--ink);margin:8px 0 13px;font-size:24px;font-weight:300;line-height:1.08}#gallery .ghero{aspect-ratio:16/10;background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--cc) 30%,transparent),#ffffff05 64%);border:1px solid #ffffff1a;border-radius:12px;animation:.42s both gin;position:relative;overflow:hidden}#gallery .ghero img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}#gallery .ghero.storyhero{aspect-ratio:auto}#gallery .ghero.storyhero img{object-fit:contain;height:auto;position:relative;inset:auto}#gallery .ghero .hph{text-align:center;font-family:var(--mono);letter-spacing:.1em;color:var(--ink3);place-items:center;padding:14px;font-size:10px;display:grid;position:absolute;inset:0}#gallery .ghero.clickable{cursor:pointer}#gallery .ghero.clickable:hover{border-color:var(--cc)}#gallery .ghero .henter{z-index:2;font-family:var(--mono);letter-spacing:.1em;color:#fff;opacity:0;background:linear-gradient(#0000,#000000d1);padding:20px 12px 10px;font-size:10.5px;transition:all .16s;position:absolute;bottom:0;left:0;right:0}#gallery .ghero.clickable:hover .henter{opacity:1}#gallery .gback{font-family:var(--mono);letter-spacing:.1em;color:var(--ink2);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:6px;margin-bottom:15px;padding:6px 12px;font-size:10px;transition:all .16s;display:inline-flex}#gallery .gback:hover{border-color:var(--cc);color:var(--ink)}#gallery .gdesc{color:var(--ink2);margin:15px 0 4px;font-size:13.5px;line-height:1.62}#gallery .gcontact{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cc,var(--acc));border:1px solid var(--cc,var(--acc));cursor:pointer;background:0 0;border-radius:999px;align-items:center;margin:14px 0 2px;padding:10px 18px;font-size:11.5px;transition:all .16s;display:inline-flex}#gallery .gcontact:hover{background:color-mix(in srgb,var(--cc,var(--acc)) 14%,transparent)}#gallery .gcaplab{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);align-items:center;gap:9px;margin:20px 0 10px;font-size:9px;display:flex}#gallery .gcaplab:after{content:"";background:#ffffff1a;flex:1;height:1px}#gallery .gcard{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:11px;align-items:center;gap:11px;margin-bottom:8px;padding:9px 11px 9px 13px;transition:all .16s;animation:.42s both gin;display:flex;position:relative}#gallery .gcard:hover{border-color:var(--cc);background:#ffffff0d;transform:translate(-2px)}#gallery .gcard .gdot{background:var(--cc);width:11px;height:11px;box-shadow:0 0 11px var(--cc);border:2px solid #07090f;border-radius:50%;position:absolute;top:50%;left:-6px;transform:translateY(-50%)}#gallery .gcard .gth{background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--cc) 36%,transparent),#ffffff08);border-radius:9px;flex:none;width:62px;height:62px;position:relative;overflow:hidden}#gallery .gcard .gth img,#gallery .gcard .gth video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}#gallery .gcard.gcardA{background:var(--ag);border-color:#0000;padding:13px 12px 13px 16px}#gallery .gcard.gcardA:hover{filter:brightness(1.08)saturate(1.1);background:var(--ag);transform:translate(-2px)}#gallery .gcard.gcardA .gcn{color:#06070d;font-weight:700}#gallery .gcard.gcardA .gcs{color:#06070d9e}#gallery .gcard.gcardA .gco{color:#06070d;opacity:.65}#gallery .gcard.gcardA .gdot{box-shadow:none;border-color:var(--cc);background:#06070d}#gallery .gpill{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#06070d;background:var(--cc);cursor:pointer;border:none;border-radius:999px;padding:5px 11px;font-size:9px;transition:all .16s}#gallery .gpill:hover{filter:brightness(1.1)}#gallery .gcard .gcc{flex-direction:column;gap:2px;min-width:0;display:flex}#gallery .gcard .gcn{font-family:var(--display);color:var(--ink);letter-spacing:-.01em;font-size:16.5px;font-weight:700;line-height:1.18}#gallery .gcard .gcs{color:var(--ink2);font-size:12px;line-height:1.4;font-family:var(--mono);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}#gallery .gcard .gco{font-family:var(--mono);color:var(--cc);opacity:0;flex:none;margin-left:auto;font-size:13px;transition:all .16s}#gallery .gcard:hover .gco{opacity:1}#gallery .genter{text-align:center;width:100%;font-family:var(--mono);letter-spacing:.07em;color:#05060a;background:var(--cc);cursor:pointer;border:none;border-radius:9px;margin-top:10px;padding:13px;font-size:11px;transition:all .16s;display:block}#gallery .genter:hover{filter:brightness(1.08)}@keyframes gin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}#themebtn{z-index:20;line-height:1;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:manipulation;background:#080a1066;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:11px;transition:all .16s;display:inline-flex;position:fixed;top:13px;right:20px}#themebtn .ti{font-size:14px}#themebtn:hover{border-color:var(--ink);color:var(--ink)}body.light #themebtn{background:#fff9;border-color:#0000002e}body.light #mini{background:#ece4d152;border-color:#00000024;box-shadow:0 14px 40px #786e502e,inset 0 1px #fff9}body.light #mtip{color:#0a0a0a;background:#faf9f5f5;border-color:#0003}body.light #mtip .mr{color:#0a0a0a80}body.light{--bg:#efe7d4;--ink:#0a0a0a;--ink2:#0a0a0ab8;--ink3:#0a0a0a6b;--acc:#003a3a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body.light #page .spacer .ret{color:var(--ink2);opacity:1;background:#ffffff8c;border-color:#00000029}body.light #vig{background:radial-gradient(120% 120% at 50% 46%,#0000 55%,#d0ccc18c)}body.light #themebtn,body.light #tabs .t,body.light #pagetop .back,body.light #caminos .camino{background:#ffffff9e;border-color:#00000029}body.light #tip,body.light #tip:after{background:#faf9f5ed;border-color:#00000029}body.light #tabs .t.on{color:#0a0a0a}body.light #gallery .gpi{color:#0a0a0a;background:#06d6c4;border-color:#06d6c4}body.light #gallery .gpi:hover{background:#33e8d8}body.light .sk{background:var(--cc);color:#0a0a0a;border-color:#0000}body.light .sk i{color:#0a0a0a8c}body.light .sk-first{border-color:var(--cc);background:0 0}body.light #page .doc{background:linear-gradient(#0000,#efe7d4 7% 13%)}body.light #page .meta,body.light #page .pgfoot{border-color:#0000001f}body.light #page .repo{border-color:#0000002e}body.light .mediaframe,body.light .ncard,body.light .cthumb,body.light #page .cphoto{background:#00000008;border-color:#0000001f}body.light .ncard{background:#00000005}body.light #gallery{background:0 0;border-left-color:#0000001a;box-shadow:-26px 0 70px #786e5024,inset 1px 0 #ffffff73}body.light #gallery .gcard{background:#0000000d;border-color:#0000001f}body.light #gallery .gcard.gcardA{background:var(--ag);border-color:#0000}body.light #gallery .gback{background:#0000000d;border-color:#00000029}body.light #page .cta,body.light #gallery .genter,body.light #gallery .gpill,body.light #gallery .gpi,body.light #gallery .gback,body.light .dv-toggle,body.light #origenback{color:#0a0a0a!important;background:#06d6c4!important;border:1px solid #0a0a0a!important}body.light #page .cta:hover,body.light #gallery .genter:hover,body.light #gallery .gpill:hover,body.light #gallery .gpi:hover,body.light #gallery .gback:hover,body.light .dv-toggle:hover,body.light #origenback:hover{background:#33e8d8!important;border-color:#0a0a0a!important}body.light #gallery .gcard .gdot{border-color:#fafaf7}body.light #gallery .gcaplab:after{background:#0000001f}body.light.noglass #gallery{background:linear-gradient(255deg,#f5f3ecf0,#f5f3ecd6)}@media (max-width:760px){#mini,#minilbl,#crumb{display:none}#wordmark{letter-spacing:.26em;font-size:11px}#themebtn{padding:9px 14px;font-size:12px}#themebtn .ti{font-size:16px}#pagetop{top:14px;left:14px;right:auto}#tabs{justify-content:flex-start;gap:7px;padding:44px 12px 10px}#tabs .t{letter-spacing:.12em;padding:8px 13px;font-size:12px}#tabslead{display:none}#tip .nm{font-size:14px}#tip .kc,#tip .go{font-size:11px}#gallery{background:0 0;border-top:1px solid #ffffff29;border-left:none;border-radius:20px 20px 0 0;width:100%;min-width:0;max-width:100%;height:56vh;padding:14px 18px 26px;inset:auto 0 0;transform:translateY(30px);box-shadow:0 -22px 60px #0006}body.noglass #gallery{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#0c0f17db,#0c0f17f0)}#gallery .gname{font-size:21px}#gallery .gcard .gcn{font-size:14.5px}#gallery .gcard .gcs{font-size:11px}#gallery .gcaplab{font-size:10px}#gallery.show{transform:none}#gallery:before{content:"";background:#ffffff52;border-radius:3px;width:40px;height:4px;margin:0 auto 12px;display:block}#gallery .gcard{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff0d}#gallery .ghero{background:#ffffff0a}#page .spacer{height:38vh}#page .doc{padding:0 6vw 90px}.sitetree,#page .sitetree{grid-template-columns:repeat(2,1fr);gap:10px 16px}.sitetree .stc-h{font-size:13px}.sitetree a{white-space:normal;font-size:13px;line-height:1.7}.treelab2{font-size:12px}body.origen #origenback{top:auto;bottom:18px;right:16px}}#gallery .gname{font-family:var(--display);letter-spacing:-.03em;overflow-wrap:break-word;background:var(--ag);color:#0000;-webkit-background-clip:text;background-clip:text;margin:6px 0 14px;font-size:clamp(30px,4.4vw,60px);font-weight:800;line-height:.9}#gallery .ghead .gtag{font-family:var(--mono);color:var(--cc);letter-spacing:.14em}#page .title{font-family:var(--display);letter-spacing:-.04em;overflow-wrap:break-word;background:var(--ag);color:#0000;-webkit-background-clip:text;background-clip:text;max-width:14ch;margin:.18em 0 .12em;font-size:clamp(40px,8vw,104px);font-weight:800;line-height:1}#page .kicker{font-family:var(--mono);color:var(--cc)}#page .meta{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px 30px;display:grid}#gallery .gcard,#page .ncard{-webkit-backdrop-filter:blur(7px);background:#ffffff0d;border-color:#ffffff24}#page .ncard.ncardA{background:var(--ag)}#page .imgstrip{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}#page .imgstrip .it{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff0d;border:1px solid #ffffff24;border-radius:8px;flex:none;width:132px;overflow:hidden}#page .imgstrip .it img{object-fit:cover;width:100%;height:83px;display:block}#page .imgstrip .itlab{font-family:var(--mono);letter-spacing:.01em;color:var(--ink3);white-space:nowrap;text-overflow:ellipsis;padding:5px 7px 6px;font-size:10px;display:block;overflow:hidden}#page .imgstrip .it.on .itlab,#page .imgstrip .it:hover .itlab{color:var(--acc)}body.light #page .imgstrip .it{background:#00000008;border-color:#00000029}.treelab2{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin:26px 0 9px;font-size:10.5px}.sitetree{font-family:var(--mono);grid-template-columns:repeat(3,1fr);gap:5px 16px;display:grid}#page .sitetree{grid-template-columns:repeat(5,1fr)}.sitetree .stc{margin-bottom:6px}.sitetree .stc-h{color:var(--ink);align-items:center;gap:6px;margin-bottom:3px;font-size:11.5px;display:flex}.sitetree .stc-h i{background:var(--cc);border-radius:50%;width:6px;height:6px}.sitetree a{color:var(--ink3);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.55;text-decoration:none;display:block;overflow:hidden}.sitetree a .br{color:#fff3}.sitetree a:hover{color:var(--cc)}.sitetree a.st-mani{color:#cfff04;letter-spacing:.03em;font-weight:600}.sitetree a.st-mani:hover{opacity:.78}body.light .sitetree a.st-mani{color:#0a8a7e}.twdoors{gap:14px;max-width:780px;margin:6px 0 30px;display:grid}.twdoor{border:1px solid #ffffff1f;border-left:3px solid var(--dc);background:#ffffff08;border-radius:13px;padding:20px 20px 16px;transition:transform .22s,box-shadow .22s}.twdoor:hover{transform:translateY(-3px);box-shadow:0 16px 40px #00000040}.twdoor h3{font-family:var(--mono);color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0 0 8px;font-size:15px;display:flex}.twdoor .twprice{color:var(--dc);font-size:12.5px;font-weight:500}.twdoor p{max-width:62ch;margin:.2em 0 .8em;font-size:14px}.twdoor ul{margin:0;padding-left:1.1em;font-size:13.5px}.twdoor li{margin:.3em 0}.twanchor{font-family:var(--mono);color:var(--ink3);border-top:1px dashed #ffffff29;margin-top:12px;padding-top:10px;font-size:10.5px}body.light .twdoor{background:#00000008;border-color:#00000024}body.light .twanchor{border-top-color:#0000002e}.twprogwrap{z-index:4;background:color-mix(in srgb,var(--pgbg,#070910) 82%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:10px 0 8px;position:sticky;top:0}body.light .twprogwrap{--pgbg:#efe7d4}.twprog{background:#ffffff1a;border-radius:99px;height:5px;overflow:hidden}body.light .twprog{background:#0000001a}.twprog i{background:linear-gradient(90deg,#9b8fff,#e84fd0);border-radius:99px;width:10%;height:100%;transition:width .35s;display:block}.twplbl{font-family:var(--mono);letter-spacing:.12em;color:var(--ink3);margin-top:5px;font-size:9.5px}.twfld{margin:26px 0;padding-left:42px;position:relative}.twnum{font-family:var(--mono);color:var(--ink3);border:1px solid #ffffff29;border-radius:7px;padding:4px 6px;font-size:9.5px;transition:all .25s;position:absolute;top:0;left:0}body.light .twnum{border-color:#0003}.twfld.done .twnum{color:var(--acc);border-color:var(--acc)}.twfld label{font-family:var(--mono);color:var(--ink);margin-bottom:7px;font-size:11.5px;display:block}.twwhy{color:var(--ink3);margin:-2px 0 8px;font-size:12px}.twnote{color:var(--ink3);max-width:58ch;margin-top:7px;font-size:12px}.twchips{flex-wrap:wrap;gap:7px;display:flex}.twchips label{font-family:var(--mono);color:var(--ink2);cursor:pointer;border:1px solid #ffffff29;border-radius:999px;margin:0;padding:7px 13px;font-size:10.5px;transition:all .15s;display:inline-flex}body.light .twchips label{border-color:#0003}.twchips input{display:none}.twchips label:has(input:checked){border-color:var(--acc);color:var(--ink);background:color-mix(in srgb,var(--acc) 14%,transparent)}.twcta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;margin-top:30px;display:flex}.twmicro{font-family:var(--mono);letter-spacing:.08em;color:var(--ink3);font-size:10px}.twcta .cta{box-shadow:0 10px 26px color-mix(in srgb,var(--acc) 30%,transparent)}.twalt{color:var(--ink3);margin-top:22px;font-size:12px}.twok{border:1px solid var(--acc);background:color-mix(in srgb,var(--acc) 8%,transparent);color:var(--ink);border-radius:13px;padding:22px}.twerr{color:var(--ink);background:#ff6a3d1a;border:1px solid #ff6a3d;border-radius:10px;max-width:58ch;margin-top:12px;margin-left:auto;padding:11px 13px;font-size:12.5px}@media (max-width:600px){.twfld{padding-left:0}.twnum{margin-bottom:6px;display:inline-block;position:static}}.glance{background:#ffffff08;border:1px solid #ffffff1f;border-radius:14px;margin:20px 0 6px;padding:18px 20px}body.light .glance{background:#00000006;border-color:#0000001a}.glance .gl-rows{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 26px;display:grid}.glance .gl-row .k{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:4px;font-size:9px}.glance .gl-row .v{color:var(--ink);font-size:15px;line-height:1.45}.glance .gl-skills{border-top:1px solid #ffffff14;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;padding-top:15px;display:flex}body.light .glance .gl-skills{border-top-color:#00000014}.gl-sklab{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-right:4px;font-size:9px}.sk{font-family:var(--mono);color:var(--ink);border:1px solid var(--cc);background:color-mix(in srgb,var(--cc) 13%,transparent);border-radius:999px;align-items:center;gap:7px;padding:5px 11px;font-size:11px;display:inline-flex}.sk i{letter-spacing:.08em;text-transform:uppercase;color:var(--cc);opacity:.9;font-size:8px;font-style:normal}.sk-core{background:color-mix(in srgb,var(--cc) 24%,transparent)}.sk-first{background:0 0;border-style:dashed}.dv-toggle{font-family:var(--mono);letter-spacing:.07em;color:var(--cc);border:1px solid var(--cc);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:9px;margin:14px 0 0;padding:9px 16px;font-size:11px;transition:all .16s;display:inline-flex}.dv-toggle:hover{background:color-mix(in srgb,var(--cc) 12%,transparent)}.dv-toggle i{font-size:12px;font-style:normal}.dive{gap:20px;margin-top:20px;animation:.42s both gin;display:grid}.dive[hidden]{display:none}.dv-sec .dv-h{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;background:var(--cc);color:#000;border-radius:999px;margin-bottom:8px;padding:3px 9px 3px 10px;font-size:9px;display:inline-block}.dv-sec p{color:var(--ink2);max-width:62ch;margin:0;font-size:16px;line-height:1.66}.dv-sec ul{gap:8px;margin:0;padding-left:18px;display:grid}.dv-sec li{color:var(--ink2);max-width:60ch;font-size:15.5px;line-height:1.55}.contact-profile{max-width:1040px;margin:58px 0 18px}.contact-section{margin:0 0 clamp(120px,13vw,176px)}.contact-eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--cc);margin-bottom:10px;font-size:10px;line-height:1.4}.contact-section>h2,.contact-close>h2{font-family:var(--display),var(--sans);letter-spacing:-.035em;color:var(--ink);word-break:keep-all;max-width:18ch;margin:0;font-size:clamp(28px,3.8vw,52px);font-weight:550;line-height:1.12}.contact-deck{color:var(--ink2);word-break:keep-all;max-width:64ch;margin:18px 0 30px;font-size:clamp(16px,1.5vw,19px);line-height:1.72}.contact-journey{border-top:1px solid #ffffff21;padding-top:30px}.contact-journey ol{margin:42px 0 0;padding:0 0 0 34px;list-style:none;position:relative}.contact-journey ol:before{content:"";background:linear-gradient(180deg,var(--cc),color-mix(in srgb,var(--cc) 24%,transparent));width:1px;position:absolute;top:7px;bottom:8px;left:7px}.contact-timeline-item{padding:0 0 clamp(56px,7vw,88px) 34px;position:relative}.contact-timeline-item:last-child{padding-bottom:0}.contact-timeline-item:before{content:"";background:var(--cc);width:13px;height:13px;box-shadow:0 0 0 7px color-mix(in srgb,var(--cc) 14%,transparent);border-radius:50%;position:absolute;top:5px;left:-32px}.contact-timeline-item--brief{padding-bottom:38px}.contact-timeline-year{font-family:var(--mono);letter-spacing:.1em;color:var(--cc);font-size:11px;line-height:1.4;display:block}.contact-timeline-item h3{font-family:var(--display),var(--sans);letter-spacing:-.025em;color:var(--ink);word-break:keep-all;margin:8px 0 0;font-size:clamp(22px,2.5vw,32px);font-weight:600;line-height:1.25}.contact-timeline-summary{color:var(--ink2);word-break:keep-all;max-width:68ch;margin:13px 0 0;font-size:15px;line-height:1.72}.contact-timeline-projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.contact-timeline-project{background:#ffffff06;border:1px solid #ffffff1f;border-radius:14px;padding:20px 21px}.contact-timeline-project h4{color:var(--ink);word-break:keep-all;margin:0 0 8px;font-size:15.5px;line-height:1.45}.contact-timeline-project p{color:var(--ink2);word-break:keep-all;margin:0;font-size:13.5px;line-height:1.68}.contact-timeline-links{flex-wrap:wrap;align-items:center;gap:7px;margin-top:16px;display:flex}.contact-timeline-link{min-height:34px;color:var(--cc);word-break:keep-all;border:1px solid color-mix(in srgb,var(--cc) 42%,transparent);background:color-mix(in srgb,var(--cc) 9%,transparent);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;line-height:1.35;text-decoration:none;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.contact-timeline-link:hover{color:#080910;background:var(--cc);border-color:var(--cc)}.contact-timeline-link:focus-visible{outline:2px solid var(--cc);outline-offset:3px}.contact-timeline-link i{opacity:.75;font-size:11px;font-style:normal}.contact-columns{grid-template-columns:1.15fr .85fr;gap:clamp(72px,8vw,112px);margin-bottom:clamp(120px,13vw,176px);display:grid}.contact-columns .contact-section{margin:0}.contact-columns .contact-section>h2{font-size:clamp(27px,3vw,40px)}.contact-collab-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:31px;display:grid}.contact-collab-item{border-top:1px solid #ffffff1f;padding:20px 0}.contact-collab-item h3{color:var(--ink);margin:0 0 7px;font-size:16px;line-height:1.45}.contact-collab-item p{color:var(--ink2);word-break:keep-all;margin:0;font-size:13.5px;line-height:1.68}.contact-fit{background:#ffffff06;border:1px solid #ffffff21;border-radius:16px;padding:24px}.contact-fit ul{gap:0;margin:25px 0 0;padding:0;list-style:none;display:grid}.contact-fit li{color:var(--ink2);word-break:keep-all;border-top:1px solid #ffffff1a;padding:14px 0 14px 20px;font-size:14px;line-height:1.64;position:relative}.contact-fit li:before{content:"↗";color:var(--cc);position:absolute;left:0}.contact-close{border:1px solid color-mix(in srgb,var(--cc) 45%,transparent);background:radial-gradient(120% 180% at 100% 0,color-mix(in srgb,var(--cc) 22%,transparent),transparent 52%),#ffffff09;border-radius:20px;margin:0;padding:clamp(28px,5vw,60px);position:relative;overflow:hidden}.contact-close:after{content:"";border:1px solid color-mix(in srgb,var(--cc) 30%,transparent);width:270px;height:270px;box-shadow:0 0 0 38px color-mix(in srgb,var(--cc) 5%,transparent),0 0 0 76px color-mix(in srgb,var(--cc) 4%,transparent);pointer-events:none;border-radius:50%;position:absolute;top:-115px;right:-75px}.contact-close>h2{z-index:1;max-width:21ch;position:relative}.contact-close>p{z-index:1;color:var(--ink2);word-break:keep-all;max-width:55ch;margin:18px 0 25px;font-size:15px;line-height:1.72;position:relative}.contact-actions{z-index:1;flex-wrap:wrap;align-items:stretch;gap:9px;display:flex;position:relative}.contact-mail{z-index:1;font-family:var(--mono);color:#080910;background:var(--cc);border-radius:9px;align-items:center;padding:13px 17px;font-size:11px;line-height:1.4;text-decoration:none;display:inline-flex;position:relative}.contact-copy{cursor:pointer;width:44px;min-height:44px;color:var(--cc);background:color-mix(in srgb,var(--cc) 9%,transparent);border:1px solid color-mix(in srgb,var(--cc) 60%,transparent);border-radius:9px;place-items:center;padding:0;transition:background .18s,border-color .18s,color .18s;display:grid}.contact-copy:hover{color:#080910;background:var(--cc);border-color:var(--cc)}.contact-copy:focus-visible{outline:2px solid var(--cc);outline-offset:3px}.contact-copy svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}@media (min-width:761px){.contact-profile{margin-left:148px}}body.light .contact-fit{background:linear-gradient(145deg,color-mix(in srgb,var(--cc) 9%,transparent),#00000005 55%);border-color:#00000021}body.light .contact-timeline-project{background:#00000005;border-color:#0000001f}body.light .contact-journey,body.light .contact-collab-item,body.light .contact-fit li{border-color:#0000001f}body.light .contact-close{background:radial-gradient(120% 180% at 100% 0,color-mix(in srgb,var(--cc) 19%,transparent),transparent 52%),#00000006}@media (max-width:760px){.contact-profile{margin-top:44px}.contact-section{margin-bottom:96px}.contact-section>h2,.contact-close>h2{max-width:24ch;font-size:30px}.contact-deck{margin-bottom:23px;font-size:16px}.contact-journey ol{margin-top:30px;padding-left:25px}.contact-journey ol:before{left:5px}.contact-timeline-item{padding:0 0 52px 25px}.contact-timeline-item:last-child{padding-bottom:0}.contact-timeline-item:before{width:11px;height:11px;top:4px;left:-25px}.contact-timeline-item--brief{padding-bottom:30px}.contact-timeline-item h3{font-size:23px}.contact-timeline-summary{font-size:14px}.contact-timeline-projects{grid-template-columns:1fr;margin-top:20px}.contact-timeline-project{padding:18px}.contact-timeline-link{min-height:38px;padding:9px 13px}.contact-columns{grid-template-columns:1fr;gap:96px;margin-bottom:108px}.contact-collab-list{grid-template-columns:1fr;margin-top:24px}.contact-fit{padding:21px}.contact-close{padding:28px 22px}.contact-close:after{opacity:.6}}.message{left:50%;bottom:max(24px,env(safe-area-inset-bottom));z-index:300;max-width:calc(100vw - 32px);min-height:48px;color:var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);word-break:keep-all;pointer-events:none;opacity:0;background:#0f0e1aeb;border:1px solid #ffffff2e;border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:13px;line-height:1.5;transition:opacity .18s,transform .26s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;transform:translate(-50%,calc(100% + 36px));box-shadow:0 16px 46px #0006}.message.is-visible{opacity:1;transform:translate(-50%)}.message svg{fill:none;width:19px;height:19px;stroke:var(--acc);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none}.message.is-error svg{stroke:#ff9b9b}body.light .message{color:#15131c;background:#fffffff0;border-color:#00000024;box-shadow:0 16px 46px #362e2033}@media (max-width:760px){.message{bottom:max(72px,calc(env(safe-area-inset-bottom) + 60px));width:max-content;font-size:12px}}@media (prefers-reduced-motion:reduce){.message{transition:opacity .01ms;transform:translate(-50%)}}.ai-article{border-top:1px solid #ffffff24;max-width:1040px;margin:52px 0 18px;padding-top:28px}.ai-article-head{max-width:780px;margin-bottom:28px}.ai-article-head>span,.ai-section-kicker{font-family:var(--mono);letter-spacing:.17em;text-transform:uppercase;color:var(--cc);font-size:10px;line-height:1.4}.ai-article-head>p{color:var(--ink);word-break:keep-all;max-width:66ch;margin:12px 0 0;font-size:clamp(18px,1.7vw,22px);line-height:1.72}.ai-article-section{margin:0 0 72px;scroll-margin-top:24px}.ai-article-section h2{font-family:var(--display),var(--sans);letter-spacing:-.025em;color:var(--ink);word-break:keep-all;max-width:21ch;margin:10px 0 22px;font-size:clamp(25px,3vw,42px);font-weight:500;line-height:1.18}.ai-prose{max-width:72ch}.ai-prose>p{color:var(--ink2);word-break:keep-all;margin:0 0 15px;font-size:17px;line-height:1.82}.ai-prose blockquote{color:var(--ink);border-left:3px solid var(--cc);word-break:keep-all;max-width:34ch;margin:30px 0 0;padding:3px 0 3px 22px;font-size:clamp(20px,2.2vw,29px);line-height:1.52}.ai-bullets{gap:10px;margin:20px 0 0;padding-left:21px;display:grid}.ai-bullets li{color:var(--ink2);font-size:16px;line-height:1.65}.ai-workflow{background:#ffffff06;border:1px solid #ffffff21;border-radius:16px;margin:32px 0 0;padding:20px}.ai-workflow ol{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.ai-workflow li{border:1px solid #ffffff21;border-top:3px solid var(--cc);background:#06080db3;border-radius:11px;min-height:188px;padding:17px 15px 16px;position:relative}.ai-workflow li.is-gate{border-top-style:double;border-top-width:5px}.ai-workflow li.is-check{border-top-color:#72a7ff}.ai-workflow li.is-loop{border-top-color:#ffb15c}.ai-flow-label{min-width:32px;height:26px;font-family:var(--mono);color:var(--ink);border:1px solid #ffffff2e;border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:10px;display:inline-flex}.ai-workflow li em{float:right;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);font-size:8px;font-style:normal;line-height:26px}.ai-workflow li strong{color:var(--ink);word-break:keep-all;margin:20px 0 9px;font-size:16px;line-height:1.42;display:block}.ai-workflow li p{color:var(--ink2);word-break:keep-all;margin:0;font-size:13px;line-height:1.62}.ai-workflow figcaption{font-family:var(--mono);color:var(--ink3);justify-content:space-between;align-items:center;gap:16px;margin-top:15px;font-size:10px;line-height:1.55;display:flex}.ai-table-figure{margin:32px 0 0}.ai-table-scroll{border:1px solid #ffffff21;border-radius:14px;width:100%;overflow:hidden}.ai-table-figure table{border-collapse:collapse;table-layout:fixed;background:#ffffff05;width:100%}.ai-table-figure caption{text-align:left;font-family:var(--mono);letter-spacing:.08em;color:var(--ink3);border-bottom:1px solid #ffffff1f;padding:15px 17px;font-size:10px;line-height:1.5}.ai-table-figure th,.ai-table-figure td{text-align:left;vertical-align:top;word-break:keep-all;border-bottom:1px solid #ffffff17;border-right:1px solid #ffffff17;padding:15px 17px}.ai-table-figure th:last-child,.ai-table-figure td:last-child{border-right:0}.ai-table-figure tbody tr:last-child td{border-bottom:0}.ai-table-figure th{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cc);background:color-mix(in srgb,var(--cc) 7%,transparent);font-size:10px;line-height:1.45}.ai-table-figure td{color:var(--ink2);font-size:14px;line-height:1.65}.ai-source{min-height:36px;font-family:var(--mono);color:var(--ink2);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--cc) 58%,transparent);text-decoration-color:color-mix(in srgb,var(--cc) 58%,transparent);text-underline-offset:3px;align-items:center;font-size:10px;line-height:1.45;display:inline-flex}.ai-source:hover,.ai-source:focus-visible{color:var(--cc);-webkit-text-decoration-color:var(--cc);text-decoration-color:var(--cc);outline:none}.ai-table-figure>.ai-source{margin-top:9px}.ai-caveat{background:#ffb15c0f;border:1px dashed #ffb15c94;border-radius:13px;max-width:780px;margin:6px 0 52px;padding:20px 22px}.ai-caveat strong{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#ffb15c;margin-bottom:8px;font-size:10px;line-height:1.4;display:block}.ai-caveat p{color:var(--ink2);word-break:keep-all;margin:0;font-size:15px;line-height:1.7}.ai-sources{border-top:1px solid #ffffff1f;max-width:780px;padding-top:19px}.ai-sources>div{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:7px;font-size:10px}.ai-sources ul{flex-wrap:wrap;gap:3px 18px;margin:0;padding:0;list-style:none;display:flex}.ai-sources li{margin:0}body.light .ai-article{border-top-color:#00000024}body.light .ai-workflow,body.light .ai-table-figure table{background:#00000006;border-color:#00000021}body.light .ai-workflow li{border-color:#00000026;border-top-color:var(--cc);background:#ffffff80}body.light .ai-workflow li.is-check{border-top-color:#2468b8}body.light .ai-workflow li.is-loop{border-top-color:#a45100}body.light .ai-flow-label{border-color:#00000038}body.light .ai-table-scroll,body.light .ai-table-figure caption,body.light .ai-table-figure th,body.light .ai-table-figure td,body.light .ai-sources{border-color:#0000001f}body.light .ai-caveat{background:#a451000f;border-color:#a45100}body.light .ai-caveat strong{color:#873f00}@media (max-width:700px){.ai-article{margin-top:40px;padding-top:24px}.ai-article-head>p{font-size:18px;line-height:1.68}.ai-article-section{margin-bottom:58px}.ai-article-section h2{max-width:26ch;font-size:28px}.ai-prose>p{font-size:16px;line-height:1.78}.ai-prose blockquote{padding-left:17px;font-size:21px}.ai-workflow{padding:12px}.ai-workflow ol{grid-template-columns:1fr}.ai-workflow li{min-height:0;padding:16px}.ai-workflow figcaption{flex-direction:column;align-items:flex-start;gap:3px}.ai-table-scroll{border:0;overflow:visible}.ai-table-figure table,.ai-table-figure tbody,.ai-table-figure tr,.ai-table-figure td{display:block}.ai-table-figure thead{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ai-table-figure caption{border:1px solid #ffffff21;border-radius:12px 12px 0 0;display:block}.ai-table-figure tr{border:1px solid #ffffff21;border-top:0;padding:8px 14px}.ai-table-figure tr:last-child{border-radius:0 0 12px 12px}.ai-table-figure td{border:0;border-bottom:1px solid #ffffff17;grid-template-columns:minmax(92px,.42fr) 1fr;gap:12px;padding:10px 0;display:grid}.ai-table-figure td:last-child{border-bottom:0}.ai-table-figure td:before{content:attr(data-label);font-family:var(--mono);letter-spacing:.06em;color:var(--cc);text-transform:uppercase;font-size:9px;line-height:1.5}body.light .ai-table-figure caption,body.light .ai-table-figure tr,body.light .ai-table-figure td{border-color:#00000021}}#origenback,#origenpi{display:none}body.origen #origenback{z-index:20;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);cursor:pointer;background:#080a1080;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:11px;line-height:16px;display:flex;position:fixed;top:13px;right:132px}body.origen #origenback:hover{border-color:#06d6c4}body.origen #caminos,body.origen #hint,body.origen #crumb,body.origen #tip,body.origen #coldtitle{display:none!important}body.origen #gallery,body.origen #page{pointer-events:none;transition:opacity .4s,transform .4s cubic-bezier(.5,0,.3,1);transform:translate(40px)scale(.97);opacity:0!important}#gallery .gpi{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#cfff04;cursor:pointer;background:0 0;border:1px solid #cfff0466;border-radius:999px;margin:0 0 12px 8px;padding:6px 11px;font-size:9px}#gallery .gpi:hover{background:#cfff041f}@media (max-width:760px){.sitetree,#page .sitetree{gap:18px 0;grid-template-columns:1fr!important}.sitetree .stc{border-left:2px solid color-mix(in srgb,var(--cc) 50%,transparent);padding-left:11px}.sitetree .stc-h{font-size:14.5px}.sitetree a{white-space:normal;font-size:14px;line-height:1.85}.treelab2{font-size:13px}#gallery .gcard .gcn{font-size:17px}#gallery .gcard .gcs{font-size:12.5px}#page .lead{font-size:18px}.ncard .cn{font-size:19px}.ncard .ck{font-size:14.5px}body.origen #origenback{white-space:nowrap;max-width:64vw;padding:11px 16px;font-size:12px;width:auto!important;height:auto!important;inset:auto 16px 16px auto!important}#themebtn,body.origen #themebtn{inset:auto auto 16px 16px!important}#pagetop{inset:auto 16px 16px auto!important}}#lightbox{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#040406eb;justify-content:center;align-items:center;padding:24px;animation:.18s ease-out both lbin;display:flex;position:fixed;inset:0}#lightbox[hidden]{display:none}@keyframes lbin{0%{opacity:0}to{opacity:1}}#lbpanel{background:#0b0d14;border:1px solid #ffffff29;border-radius:16px;width:min(1180px,100%);height:min(900px,92dvh);min-height:0;position:relative;overflow:hidden;box-shadow:0 30px 90px #0000009e}#lbhead{z-index:3;background:linear-gradient(#030408f5 0%,#0304088c 45%,#0304082e 78%,#03040800 100%);justify-content:center;align-items:flex-start;min-height:112px;padding:10px 64px 12px;display:flex;position:absolute;inset:0 0 auto}#lbcopy{text-align:center;flex-direction:column;align-items:center;gap:3px;min-width:0;display:flex}#lbtitle{max-width:36ch;font-family:var(--display);color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 14px #000;font-size:18px;overflow:hidden}#lbcounter{font-family:var(--mono);letter-spacing:.13em;color:#ffffffa3;text-shadow:0 1px 8px #000;font-size:10px}#lbactions{justify-content:center;align-items:center;gap:18px;margin-top:4px;display:flex}.lb-action{min-height:44px;font-family:var(--mono);text-shadow:0 1px 8px #000;text-underline-offset:6px;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:8px 13px;font-size:11px;font-weight:700;text-decoration-color:#ffffff7a;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s;display:inline-flex}.lb-code{color:#ffffffdb;text-decoration:underline}.lb-demo{color:var(--acc);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--acc) 64%,transparent);text-decoration-color:color-mix(in srgb,var(--acc) 64%,transparent)}.lb-action:hover{color:#fff;-webkit-text-decoration-color:var(--acc);text-decoration-color:var(--acc)}.lb-action:focus-visible{outline:2px solid var(--acc);outline-offset:2px}#lbprev,#lbnext{cursor:pointer;min-width:112px;min-height:44px;font-family:var(--mono);letter-spacing:.04em;color:#fff;text-shadow:0 1px 2px #000;z-index:2;background:#05060a;border:1px solid #ffffffb8;border-radius:999px;padding:9px 14px;font-size:11px;font-weight:700;transition:all .16s;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 0 0 1px #00000073,0 8px 24px #0000006b}#lbprev{left:16px}#lbnext{right:16px}#lbprev:hover,#lbnext:hover{color:#fff;border-color:var(--acc);background:#05060a}#lbprev:focus-visible,#lbnext:focus-visible{outline:2px solid var(--acc);outline-offset:3px}#lbprev[hidden],#lbnext[hidden],#lbrelated[hidden],#lbempty[hidden]{display:none}#lbmain{background:#05060a;place-items:center;min-height:0;display:grid;position:absolute;inset:0;overflow:hidden}#lbimg{object-fit:cover;object-position:center;background:#05060a;width:100%;height:100%;display:block}#lbimg[hidden]{display:none}#lbempty{font-family:var(--mono);letter-spacing:.08em;color:var(--ink3);place-self:center;font-size:12px}#lbrelated{z-index:3;background:linear-gradient(#03040800 0%,#0304082e 22%,#0304088c 55%,#030408f5 100%);padding:12px 16px 10px;position:absolute;inset:auto 0 0}#lblabel{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#ffffffa3;text-shadow:0 1px 8px #000;margin-bottom:9px;font-size:9px}#lbthumbs{scrollbar-width:thin;gap:10px;padding:2px;display:flex;overflow-x:auto}.lbthumb{cursor:pointer;opacity:.62;background:#05060a;border:1px solid #ffffff29;border-radius:8px;flex:none;width:108px;height:68px;padding:0;transition:all .16s;overflow:hidden}.lbthumb:hover,.lbthumb.is-selected{opacity:1;border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}.lbthumb:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.lbthumb img{object-fit:cover;width:100%;height:100%;display:block}#lbclose{z-index:201;cursor:pointer;width:44px;height:44px;font-family:var(--mono);color:var(--ink);background:#ffffff14;border:1px solid #ffffff2e;border-radius:50%;font-size:15px;line-height:1;position:fixed;top:calc(4dvh + 16px);right:max(50vw - 572px,18px)}#lbclose:hover{background:#ffffff29}body.light #lightbox{background:#f0f0f4eb}body.light #lbpanel{background:#05060a;border-color:#ffffff38;box-shadow:0 30px 90px #463c2847}body.light #lbmain,body.light #lbimg{background:#05060a}body.light #lbprev,body.light #lbnext{color:#fff;background:#05060a;border-color:#ffffffb8}body.light #lbclose{color:#111;background:#ffffffb3;border-color:#00000029}body.light .lbthumb{background:#05060a;border-color:#fff3}@media (max-width:760px){#lightbox{padding:0}#lbpanel{border:0;border-radius:0;width:100%;height:100dvh}#lbhead{min-height:110px;padding:9px 60px 11px}.lb-action{min-height:44px;padding:8px 4px;font-size:10px}#lbprev,#lbnext{min-width:0;min-height:44px;padding:8px 10px;font-size:10px}#lbprev{left:10px}#lbnext{right:10px}#lbtitle{max-width:22ch;font-size:15px}#lbclose{width:44px;height:44px;top:10px;right:8px}#lbrelated{padding:11px 12px 10px}.lbthumb{width:88px;height:58px}}.mediaframe.zoomable{cursor:zoom-in}
