/* Portfolio pages share the editor shell while giving each story its own layout. */
.folio{--accent:var(--lime);--wash:color-mix(in srgb,var(--accent) 8%,transparent);--soft:color-mix(in srgb,var(--accent) 24%,var(--line));padding-top:8px}
.folio [id]{scroll-margin-top:28px}.folio h1,.folio h2,.folio h3{overflow-wrap:anywhere}.folio-kicker{display:flex;align-items:center;justify-content:space-between;gap:18px;font:9px/1.8 var(--mono);letter-spacing:1.3px;color:var(--accent);direction:ltr}.folio-kicker>span:last-child:not(:first-child){color:var(--muted);font-size:8px}.folio-heading{position:relative;padding:10px 0 34px;margin-bottom:36px;border-bottom:1px solid var(--line)}.folio-heading:after{content:'';position:absolute;bottom:-1px;inset-inline-start:0;width:90px;height:2px;background:var(--accent)}.folio-heading h1{font-size:clamp(30px,3.35vw,52px);line-height:1.65;letter-spacing:-1.3px;margin:22px 0 12px;max-width:850px}.folio-heading>p{font-size:15px;line-height:2;color:var(--muted);margin:0;max-width:700px}.folio .prose{max-width:none;font-size:14px;line-height:2.2}.folio .prose p{color:var(--muted);margin:0 0 22px}.folio .prose ul{color:var(--muted)}.folio-section-label{display:flex;align-items:center;gap:12px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.5px}.folio-section-label>span{font:11px var(--mono);border:1px solid var(--soft);padding:7px;border-radius:50%}.folio-small-index{font:10px var(--mono);color:var(--muted)}.tone-0{--accent:var(--lime)}.tone-1{--accent:var(--blue)}.tone-2{--accent:var(--purple)}.tone-3{--accent:var(--coral)}.folio-next{display:flex;align-items:center;justify-content:space-between;gap:22px;border-top:1px solid var(--line);padding:32px 0 0;margin-top:56px}.folio-next>span:first-child{display:flex;flex-direction:column;gap:14px}.folio-next small{font-size:10px;letter-spacing:1px;color:var(--muted)}.folio-next strong{font-size:clamp(18px,2vw,28px);line-height:1.8}.folio-next-arrow{display:grid;place-items:center;font:28px var(--mono);border:1px solid var(--soft);width:60px;height:60px;flex-shrink:0;border-radius:50%;color:var(--accent);transition:background .2s,transform .2s}.folio-next:hover .folio-next-arrow{background:var(--wash);transform:translate(3px,-3px)}
/* About: identity artwork and an unabridged personal story. */
.about-opening{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.3fr);gap:38px;align-items:start}.identity-art{position:sticky;top:24px;min-height:450px;overflow:hidden;border:1px solid var(--soft);border-radius:18px;background:radial-gradient(ellipse at 50% 48%,color-mix(in srgb,var(--lime) 12%,transparent),transparent 62%),var(--panel);direction:ltr;isolation:isolate}.identity-art:after{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(var(--line) .7px,transparent .7px);background-size:16px 16px}.identity-top,.identity-bottom{display:flex;align-items:center;justify-content:space-between;position:absolute;left:22px;right:22px;font:8px/1.8 var(--mono);letter-spacing:1px;color:var(--muted)}.identity-top{top:22px}.identity-top>span:last-child{font-size:23px;color:var(--lime)}.identity-bottom{bottom:25px}.identity-bottom>span:first-child{font-size:18px;letter-spacing:3px;color:var(--text)}.identity-monogram{position:absolute;inset:72px 0 65px;display:grid;align-content:center;justify-content:center;font:150px/.9 var(--mono);letter-spacing:-20px;color:var(--lime);text-shadow:0 10px 40px color-mix(in srgb,var(--lime) 18%,transparent)}.identity-monogram span{position:absolute;left:60%;top:43%;font-size:80px}.identity-orbit{position:absolute;width:255px;height:255px;border:1px solid var(--soft);border-radius:50%;top:88px;left:calc(50% - 127px)}.orbit-two{transform:rotate(-35deg) scaleX(.52);border-color:color-mix(in srgb,var(--lime) 45%,transparent)}.orbit-one:after{content:'';width:7px;height:7px;border-radius:50%;position:absolute;top:43px;left:31px;background:var(--lime);box-shadow:0 0 20px var(--lime)}.identity-coordinate{position:absolute;font:8px var(--mono);background:var(--panel);border:1px solid var(--line);padding:7px 10px;color:var(--muted);border-radius:4px}.coordinate-one{top:100px;right:18px}.coordinate-two{top:265px;left:10px}.coordinate-three{bottom:105px;right:15px}.about-story>.folio-section-label{margin:4px 0 24px}.about-story .prose p:first-child{color:var(--text)}.about-details{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:40px}.profile-detail{position:relative;padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.profile-detail:last-child:nth-child(odd){grid-column:1/-1}.detail-mark{color:var(--accent);font:25px var(--mono);margin-bottom:24px}.profile-detail>.folio-small-index{position:absolute;inset-inline-end:25px;top:30px}.profile-detail h2{font-size:21px;margin:0 0 20px}.profile-detail .prose p:last-child{margin-bottom:0}.profile-detail .prose ul{display:grid;grid-template-columns:1fr 1fr;gap:12px;list-style:none;padding:0;margin:25px 0 0}.profile-detail .prose li{border-inline-start:2px solid var(--accent);padding:8px 16px;margin:0;background:color-mix(in srgb,var(--accent) 5%,transparent);font-size:13px}
/* Skills: no invented scores; proficiency labels are taken verbatim from content. */
.folio-jump{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:30px}.folio-jump a{display:flex;gap:12px;align-items:center;font-size:11px;padding:12px 15px;border:1px solid var(--line);border-radius:6px;color:var(--muted);transition:color .2s,border-color .2s}.folio-jump a:hover{border-color:var(--accent);color:var(--text)}.folio-jump a>span{color:var(--accent);font:9px var(--mono)}.skill-matrix{display:grid;grid-template-columns:1fr 1fr;gap:20px}.skill-domain{border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 65%),var(--panel);padding:27px;min-width:0}.skill-domain-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.skill-glyph{font:22px var(--mono);color:var(--accent)}.skill-domain h2{font-size:18px;line-height:1.8;margin:0 0 23px}.skill-items{display:flex;flex-wrap:wrap;gap:9px}.skill-item{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:10px 12px;border-radius:6px;background:var(--bg);font:11px/1.7 var(--mono);max-width:100%;flex-wrap:wrap;direction:ltr}.skill-item bdi{overflow-wrap:anywhere}.skill-dot{width:4px;height:4px;background:var(--accent);border-radius:50%;flex-shrink:0}.skill-level{font-size:9px;color:var(--accent)}.skill-domain:first-child .skill-item:has(.skill-level){width:100%;padding:13px}.skill-domain:first-child .skill-level{margin-left:auto}.skill-domain:nth-child(3){grid-column:1/-1}.skill-domain:nth-child(3) .skill-item{padding:12px 15px}
/* Experience: every original responsibility stays visible. */
.journey-intro{display:flex;align-items:center;gap:14px;font-size:11px;line-height:1.8;color:var(--muted);margin-bottom:30px;flex-wrap:wrap}.journey-line{width:32px;height:2px;background:var(--lime)}.journey-total{margin-inline-start:auto;padding:8px 12px;background:var(--wash);color:var(--lime);border-radius:4px}.career-timeline{position:relative}.career-timeline:before{content:'';position:absolute;inset-inline-start:20px;top:20px;bottom:40px;width:1px;background:linear-gradient(var(--lime),var(--line) 40%,var(--line) 90%,transparent)}.career-entry{display:grid;grid-template-columns:42px minmax(0,1fr);gap:20px;margin:0 0 28px;position:relative}.career-marker{position:relative;width:42px;height:42px;border:1px solid var(--soft);border-radius:50%;background:var(--bg);display:grid;place-items:center;font:11px var(--mono);color:var(--accent);margin-top:30px}.career-card{padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--panel);min-width:0}.career-card-header{display:flex;align-items:center;justify-content:space-between;color:var(--accent);margin-bottom:20px}.career-card-header .folio-section-label{font-size:9px}.career-card h2{font-size:clamp(19px,1.9vw,25px);line-height:1.9;margin:0 0 15px}.career-body.prose blockquote{font:11px/2 var(--font);margin:0 0 24px;border:0;padding:9px 12px;background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);border-radius:4px;width:fit-content;white-space:pre-wrap}.career-body.prose>ul{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;padding:0;list-style:none}.career-body.prose>ul>li{font-size:13px;line-height:2;padding-inline-start:16px;position:relative;margin:0}.career-body.prose>ul>li:before{content:'';width:4px;height:4px;background:var(--accent);position:absolute;inset-inline-start:0;top:12px;border-radius:50%}.career-highlights{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px;border-top:1px solid var(--line);padding-top:26px}.career-highlights h3{font-size:15px;line-height:1.9;margin:12px 0}.highlight-spark{color:var(--accent);font-size:24px}.career-highlights .prose li{font-size:12px;line-height:2.1}.career-highlights .prose ul{padding-inline-start:18px}
/* Projects: abstract concept art, replaced by an uploaded cover whenever present. */
.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px 22px}.project-toolbar{align-items:start;flex-wrap:wrap;gap:18px;margin-bottom:30px}.project-toolbar input{min-width:180px;width:220px}.project-toolbar .filters{flex-wrap:wrap}.work-card.content-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;transition:border-color .2s,transform .2s}.work-card:hover{border-color:var(--soft);transform:translateY(-4px)}.work-card[hidden]{display:none}.work-art-link{display:block}.project-art{height:280px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 65%),var(--panel);isolation:isolate;direction:ltr}.art-web{--accent:var(--blue)}.art-studio{--accent:var(--purple)}.art-bot{--accent:var(--lime)}.art-robot{--accent:var(--coral)}.art-grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:30px 30px;opacity:.32;mask-image:radial-gradient(ellipse,#000 25%,transparent 75%);z-index:-1}.art-caption,.art-foot{position:absolute;inset-inline:22px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font:8px var(--mono);letter-spacing:.6px}.art-caption{top:22px}.art-caption>span:first-child{color:var(--accent)}.art-caption>span:last-child{font-family:var(--font);letter-spacing:0;font-size:9px}.art-foot{bottom:20px}.art-foot>span:last-child{font-size:20px;color:var(--accent)}.art-object{position:absolute;inset:45px 35px;display:grid;place-items:center}.art-browser{position:absolute;width:200px;height:145px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:8px;background:var(--bg);box-shadow:0 18px 35px #0002;transform:rotate(-7deg);transition:transform .35s}.rear-browser{transform:rotate(7deg) translate(15px,-5px);background:color-mix(in srgb,var(--accent) 9%,var(--panel));opacity:.6}.work-card:hover .front-browser{transform:rotate(-3deg) translateY(-4px)}.art-browser-top{height:23px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:4px;padding:0 9px}.art-browser-top i{width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:.6}.art-browser-top>span{margin-left:auto;color:var(--muted);font:6px var(--mono)}.art-browser-content{padding:14px 17px;position:relative}.art-browser-title{font:37px var(--mono);color:var(--accent)}.art-browser-title span{color:var(--text)}.art-browser-lines{position:absolute;right:18px;top:25px;width:70px;display:flex;flex-direction:column;gap:7px}.art-browser-lines i{height:3px;background:var(--line);width:100%}.art-browser-lines i:nth-child(2){width:75%}.art-browser-lines i:last-child{width:50%;background:var(--accent);opacity:.5}.art-mini-grid{display:flex;gap:7px;margin-top:10px}.art-mini-grid i{height:25px;flex:1;background:color-mix(in srgb,var(--accent) 8%,var(--bg));border:1px solid var(--line);border-radius:3px}.art-ring{width:190px;height:190px;position:absolute;border:1px solid var(--soft);border-radius:50%;transform:rotate(-25deg) scaleY(.65)}.inner-ring{transform:rotate(50deg) scaleY(.65)}.art-core{display:grid;place-items:center;width:82px;height:82px;border:1px solid var(--accent);background:var(--bg);border-radius:20px;box-shadow:0 0 50px color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);font:35px var(--mono);transform:rotate(-9deg)}.art-node{position:absolute;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;width:42px;height:33px;color:var(--muted);font:10px var(--mono)}.node-one{left:5%;top:20%}.node-two{right:3%;top:30%}.node-three{bottom:0;left:37%}.project-art.has-cover img{height:100%;width:100%;object-fit:cover}.work-card-copy{padding:24px}.work-card-meta{font:9px var(--mono);color:var(--accent);display:flex;justify-content:space-between;direction:ltr}.work-card-copy h2{font-size:20px;line-height:1.8;margin:16px 0 10px}.work-card-copy>p{font-size:12px;line-height:2;color:var(--muted);margin:0 0 25px}.work-read{display:flex;align-items:center;justify-content:space-between;font-size:11px;border-top:1px solid var(--line);padding-top:18px}.work-read>span{font-size:20px;color:var(--accent)}
.project-back{display:inline-block;color:var(--muted);font-size:11px;margin-bottom:34px}.project-back:hover{color:var(--lime)}.project-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:center;padding-bottom:45px;border-bottom:1px solid var(--line)}.project-intro h1{font-size:clamp(29px,3.2vw,46px);line-height:1.65;margin:20px 0 15px;letter-spacing:-1px}.project-intro header>p{font-size:14px;line-height:2;color:var(--muted);margin:0 0 22px}.project-tech{font:10px var(--mono);display:inline-block;padding:9px 12px;background:var(--wash);border:1px solid var(--soft);color:var(--lime);border-radius:5px;direction:ltr}.project-discover{display:flex;align-items:center;gap:20px;width:fit-content;margin-top:30px;font-size:11px}.project-discover>span{color:var(--lime);font-size:20px}.project-intro .project-art{height:350px;border:1px solid var(--line);border-radius:16px}.project-intro .art-object{inset:45px 12px}.project-intro .art-browser{width:210px;height:155px}.project-story{display:grid;grid-template-columns:minmax(160px,.65fr) minmax(0,1.5fr);gap:38px;margin-top:45px;align-items:start}.project-story-label{position:sticky;top:30px}.project-story-label h2{font-size:30px;line-height:1.8;margin:20px 0}.project-story-label>a{font-size:11px;color:var(--muted)}.project-chapter>h2{font-size:22px;line-height:1.95;margin:0 0 20px}.project-chapter .prose blockquote{font-size:12px;border-inline-start:2px solid var(--lime);background:var(--panel);margin:0 0 25px;padding:14px 18px;color:var(--muted);white-space:pre-wrap}.project-deliverables{list-style:none;padding:0;margin:0;counter-reset:deliverable}.project-deliverables>li{counter-increment:deliverable;display:grid;grid-template-columns:30px minmax(0,1fr);gap:15px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}.project-deliverables>li:before{content:counter(deliverable,decimal-leading-zero);font:11px/2 var(--mono);color:var(--lime);padding-top:3px}.project-deliverables p{font-size:14px;line-height:2.15;color:var(--muted);margin:0}.project-chapter+.project-chapter{margin-top:35px}
@media(min-width:1500px){.about-opening{grid-template-columns:330px minmax(0,1fr)}.about-story .prose{font-size:15px}.project-intro .project-art{height:390px}}
@media(max-width:1150px){.about-opening{grid-template-columns:1fr}.identity-art{position:relative;top:0;min-height:320px}.identity-orbit{top:32px}.identity-monogram{inset:30px 0 50px}.coordinate-one{top:60px;right:15%}.coordinate-two{top:180px;left:15%}.coordinate-three{bottom:75px;right:18%}.identity-bottom{bottom:22px}.about-story .prose{columns:auto}.project-story{grid-template-columns:1fr}.project-story-label{position:static;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.project-story-label h2{font-size:23px;margin:0}.project-story-label h2 br{display:none}.project-intro{grid-template-columns:1fr 1fr}.project-intro .art-browser{width:175px;height:145px}.project-intro .art-browser-lines{width:60px}.career-body.prose>ul,.career-highlights{grid-template-columns:1fr}.folio-kicker{flex-wrap:wrap}.career-card{padding:24px}.project-gallery{gap:20px}.work-card-copy{padding:20px}}
@media(max-width:800px){.project-intro{grid-template-columns:1fr}.project-intro .project-art{height:300px}.project-intro .art-browser{width:230px;height:160px}.project-intro .art-browser-lines{width:85px}.skill-domain{padding:22px}.skill-item{font-size:10px}.project-gallery{grid-template-columns:1fr}.project-art{height:290px}.work-card-copy h2{font-size:22px}}
@media(max-width:600px){.folio{padding-top:0}.folio-heading{margin-bottom:26px;padding-bottom:25px}.folio-heading h1{font-size:30px;letter-spacing:-.6px;margin-top:20px}.folio-kicker{font-size:8px;letter-spacing:.7px;gap:8px}.folio-kicker>span:last-child:not(:first-child){font-size:7px}.folio-heading>p{font-size:13px}.about-opening{gap:26px}.identity-art{min-height:330px}.identity-bottom>span:first-child{font-size:15px}.about-details,.skill-matrix{grid-template-columns:1fr}.profile-detail:last-child:nth-child(odd),.skill-domain:nth-child(3){grid-column:auto}.profile-detail{padding:24px}.profile-detail .prose ul{grid-template-columns:1fr}.folio .prose{font-size:13px;line-height:2.25}.folio-jump{gap:7px}.folio-jump a{font-size:10px;padding:9px}.skill-domain h2{font-size:18px}.skill-item{font-size:11px}.career-entry{grid-template-columns:1fr;padding-inline-start:18px;gap:0}.career-timeline:before{inset-inline-start:0}.career-marker{position:absolute;inset-inline-start:-5px;top:35px;width:11px;height:11px;font-size:0;margin:0;background:var(--accent)}.career-card{padding:21px 18px}.career-card h2{font-size:20px}.career-body.prose>ul>li{font-size:12px}.career-highlights{gap:24px}.journey-total{margin-inline-start:0}.folio-next{margin-top:38px;padding-top:26px}.folio-next-arrow{width:46px;height:46px;font-size:23px}.folio-next strong{font-size:18px}.project-toolbar input{width:100%}.project-toolbar .filter{font-size:10px;padding:8px 10px}.project-intro h1{font-size:32px}.project-intro{gap:25px;padding-bottom:30px}.project-intro .project-art{height:280px}.project-story{margin-top:30px;gap:28px}.project-story-label h2{font-size:22px}.project-story-label>a{width:100%}.project-chapter>h2{font-size:20px}.project-deliverables p{font-size:13px}.project-deliverables>li{gap:10px;grid-template-columns:24px minmax(0,1fr)}.project-back{margin-bottom:26px}}
@media(prefers-reduced-motion:reduce){.folio *{transition:none!important;animation:none!important}.folio a:hover{transform:none!important}}
