PageSourceSearch

https://akalan.ai/chunk-KWNTYYUR.js

js akalan.ai collected 2026-10-05 14:58:53 UTC 135,099 bytes, 1 lines download raw bytes

1import{a as N,b as Re,c as Ae}from"./chunk-MRIV5UD3.js";import{a as j,b as Qe}from"./chunk-NJO5GTXQ.js";import{a as Be,c as He,d as Q,e as Ne,f as X,h as le,i as ce,k as te,l as De,m as qe,n as se,o as Ue,p as We,r as Ge}from"./chunk-TV34ER4I.js";import{a as Ve}from"./chunk-YLPYEVHQ.js";import"./chunk-PDPWVTMO.js";import"./chunk-OU4P6VXF.js";import"./chunk-FDPTPP7F.js";import"./chunk-JC7WZY4B.js";import{c as Te,d as Ie,g as Fe,j as ze,k as Le,l as je,r as $e}from"./chunk-TG6L5SSD.js";import{d as Ee}from"./chunk-RIXE6A5Q.js";import{j as Se,n as G}from"./chunk-GWA6TDUW.js";import{Bb as k,Cb as h,Db as s,Fc as Oe,Gc as W,Hb as V,Ib as R,Jb as A,Jc as F,Na as y,Nb as a,Ob as d,Pb as O,Qa as Pe,Qb as Me,Ra as ye,Sa as l,W as z,Wb as q,Xb as U,Yb as g,ba as v,bb as H,ca as b,cc as we,fb as _,fc as ke,kb as $,la as ve,lb as u,mb as E,nb as T,pa as be,qa as M,qb as m,qc as w,sb as L,tb as C,ua as B,ub as x,vb as o,wb as i,xb as P}from"./chunk-O4QU2GHG.js";import{a as xe,b as he,e as D}from"./chunk-LYWLWC7U.js";var tt=["host"],nt=["canvas"],ne=class n{hostRef;canvasRef;monogram="A";accent="#e8a54b";nodes=[];set scrollProgress(t){this._scroll=Math.min(1,Math.max(0,t||0))}platformId=z(B);_scroll=0;renderer=null;scene=null;camera=null;root=null;raf=0;ro=null;reducedMotion=!1;disposed=!1;ngAfterViewInit(){F(this.platformId)&&(this.reducedMotion=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,requestAnimationFrame(()=>{if(!this.disposed)try{this.initScene(),this.loop(),this.ro=new ResizeObserver(()=>this.resize()),this.ro.observe(this.hostRef.nativeElement),window.setTimeout(()=>this.resize(),120)}catch{}}))}ngOnDestroy(){this.disposed=!0,this.raf&&cancelAnimationFrame(this.raf),this.ro?.disconnect(),this.ro=null,this.disposeThree()}initScene(){let t=this.canvasRef.nativeElement,e=this.hostRef.nativeElement,r=Math.max(1,e.clientWidth),c=Math.max(1,e.clientHeight),p=new Ge({canvas:t,antialias:!0,alpha:!0,powerPreference:"high-performance"});p.setPixelRatio(Math.min(window.devicePixelRatio||1,2)),p.setSize(r,c,!1),p.setClearColor(0,0),this.renderer=p;let f=new Ne;f.background=null,this.scene=f;let S=new De(38,r/c,.1,100);S.position.set(0,.15,5.2),this.camera=S;let I=new He;this.root=I,f.add(I);let Z=new te({color:new Q(this.accent),metalness:.7,roughness:.25,transparent:!0,opacity:.35,side:Be}),Y=new X(new le(2.15,2.22,128),Z);Y.rotation.x=Math.PI/2.15,I.add(Y);let J=new X(new le(2.55,2.58,128),Z.clone());J.material.opacity=.18,J.rotation.x=Math.PI/2.4,J.rotation.z=.2,I.add(J);let de=Math.min(12,Math.max(4,this.nodes.length||6)),Ke=new ce(.045,16,16);for(let ee=0;ee<de;ee++){let re=ee/de*Math.PI*2,ue=2.18+ee%3*.12,et=new te({color:new Q(this.accent),emissive:new Q(this.accent),emissiveIntensity:.55,metalness:.4,roughness:.3}),ae=new X(Ke,et);ae.position.set(Math.cos(re)*ue,Math.sin(re)*.35,Math.sin(re)*ue*.85),I.add(ae);let Ce=new X(new ce(.018,8,8),new te({color:new Q("#6b7a94"),emissive:new Q(this.accent),emissiveIntensity:.08}));Ce.position.copy(ae.position).multiplyScalar(.55),I.add(Ce)}f.add(new We(1712696,.55));let K=new qe(this.accent,28,18,Math.PI/7,.45,1.2);K.position.set(2.8,3.2,4.5),K.target.position.set(0,0,0),f.add(K),f.add(K.target);let _e=new Ue(4878245,1.1);_e.position.set(-3,1.5,2),f.add(_e);let fe=new se(9352447,2.2,12);fe.position.set(-2.5,-1.2,3),f.add(fe);let ge=new se(this.accent,3.5,10);ge.position.set(1.8,-.5,2.2),f.add(ge),I.rotation.x=-.12,I.rotation.y=-.35}resize(){if(!this.renderer||!this.camera)return;let t=this.hostRef.nativeElement,e=Math.max(1,t.clientWidth),r=Math.max(1,t.clientHeight);this.camera.aspect=e/r,this.camera.updateProjectionMatrix(),this.renderer.setSize(e,r,!1)}loop=()=>
1{if(this.disposed||(this.raf=requestAnimationFrame(this.loop),!this.renderer||!this.scene||!this.camera||!this.root))return;let t=-.35+this._scroll*Math.PI*1.35,e=-.12+this._scroll*.22;this.reducedMotion?(this.root.rotation.y=t,this.root.rotation.x=e):(this.root.rotation.y+=(t-this.root.rotation.y)*.045,this.root.rotation.x+=(e-this.root.rotation.x)*.045),this.renderer.render(this.scene,this.camera)};disposeThree(){this.scene&&this.scene.traverse(t=>{let e=t;if(e.isMesh){e.geometry?.dispose();let r=e.material;Array.isArray(r)?r.forEach(c=>c.dispose()):r?.dispose()}}),this.renderer?.dispose(),this.renderer=null,this.scene=null,this.camera=null,this.root=null}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=H({type:n,selectors:[["app-cinema-stage"]],viewQuery:function(e,r){if(e&1&&(V(tt,7),V(nt,7)),e&2){let c;R(c=A())&&(r.hostRef=c.first),R(c=A())&&(r.canvasRef=c.first)}},inputs:{monogram:"monogram",accent:"accent",nodes:"nodes",scrollProgress:"scrollProgress"},decls:5,vars:0,consts:[["host",""],["canvas",""],[1,"cin-stage"],["aria-hidden","true",1,"cin-stage__canvas"],["aria-hidden","true",1,"cin-stage__veil"]],template:function(e,r){e&1&&(o(0,"div",2,0),P(2,"canvas",3,1)(4,"div",4),i())},styles:["[_nghost-%COMP%]{display:block;position:absolute;inset:0;pointer-events:none}.cin-stage[_ngcontent-%COMP%]{position:absolute;inset:0;overflow:hidden}.cin-stage__canvas[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.cin-stage__veil[_ngcontent-%COMP%]{position:absolute;inset:0;background:radial-gradient(ellipse 58% 52% at 52% 46%,transparent 0%,rgba(3,6,14,.18) 58%,rgba(2,4,10,.62) 100%),linear-gradient(90deg,rgba(2,4,10,.35) 0%,transparent 30%,transparent 70%,rgba(2,4,10,.28) 100%);pointer-events:none}"]})};var it=["cursorEl"],ot=(n,t)=>t.label+t.angle,Ye=(n,t)=>t.id,rt=(n,t)=>t.company+t.role,at=(n,t)=>t.name,lt=(n,t)=>t.institution+t.degree,ct=(n,t)=>t.href;function st(n,t){n&1&&(o(0,"div",1,0),P(2,"span",39)(3,"span",40)(4,"span",41),i())}function pt(n,t){if(n&1&&(o(0,"div",42),P(1,"span",43),o(2,"span",44),a(3),i()()),n&2){let e=t.$implicit;E("--a",e.angle+"deg"),l(3),d(e.label)}}function mt(n,t){if(n&1){let e=k();o(0,"button",46),h("click",function(c){v(e);let p=s().$implicit,f=s();return b(f.scrollTo(p.id,c))}),o(1,"span",47),a(2),i(),o(3,"span",48),a(4),i()()}if(n&2){let e=s().$implicit,r=s();T("is-active",r.activeSection()===e.id),l(2),d(e.index),l(2),d(e.label)}}function dt(n,t){if(n&1&&_(0,mt,5,4,"button",45),n&2){let e=t.$implicit;m(e.id!=="top"?0:-1)}}function _t(n,t){if(n&1&&(o(0,"a",15),a(1,"Hire"),i()),n&2){s();let e=g(0);u("href","mailto:"+e.email,y)}}function ft(n,t){if(n&1){let e=k();o(0,"button",53),h("click",function(c){let p=v(e).$implicit,f=s(2);return b(f.scrollTo(p.id,c))}),o(1,"span"),a(2),i(),o(3,"span"),a(4),i()()}if(n&2){let e=t.$implicit,r=s(2);T("is-active",r.activeSection()===e.id),l(2),d(e.index),l(2),d(e.label)}}function gt(n,t){if(n&1){let e=k();o(0,"div",16)(1,"button",49),h("click",function(){v(e);let c=s();return b(c.closeMobileNav())}),i(),o(2,"nav",50)(3,"p",51),a(4,"Navigate"),i(),C(5,ft,5,4,"button",52,Ye),i()()}if(n&2){let e=s();l(5),x(e.navItems())}}function ut(n,t){if(n&1&&(o(0,"h1",21),a(1),i()),n&2){let e=s();l(),d(e.headlineText())}}function Ct(n,t){if(n&1&&(o(0,"h1",22),a(1),i()),n&2){s();let e=g(0);l(),d(e.displayName)}}function xt(n,t){if(n&1&&(o(0,"p",23),a(1),we(2,"slice"),i()),n&2){let e=t;l(),O(" ",e.length>220?ke(2,1,e,0,220)+"\u2026":e," ")}}function ht(n,t){if(n&1){let e=k();o(0,"button",54),h("click",function(c){v(e);let p=s();return b(p.scrollTo("about",c))}),a(1," Enter the work "),i()}}function vt(n,t){if(n&1&&(o(0,"a",26),a(1,"Begin a conversation"),i()),n&2){s();let e=g(0);u("href","mailto:"+e.email,y)}}function bt(n,t){if(n&1&&(o(0,"div")(1,"dt"),a(2,"Chapters"),i(),o(3,"dd"),a(4),i()()),n&2){s(3);let e=g(0);l(4),O("",e.experience.length," roles")}}function Pt(n,t){if(n&1&&(o(0,"div")(1,"dt"),a(2,"Craft"),i(),o(3,"dd"),a(4),i()()),n&2){let e=s(3);l(4),O("",e.craftProjects().length," studies")}}function yt(n,t){if(n&1&&(o(0,"dl",61)(1,"div")(2,"dt"),a(3,"Based"),i(),o(4,"dd",68)(5,"span",69),a(6),i()()(),_(7,bt,5,1,"div")(8,Pt,5,1,"div"),i()),n&2){let e=s(2),r=g(0);l(6),d(r.location),l(),m(r.experience.length?7:-1),l(),m(e.craftProjects().length?8:-1)}}function Mt(n,t){if(n&1&&(o(0,"span",70),a(1),i()),n&2){let e=t.$implicit,r=t.$index;E("--i",r),l(),d(e)}}function wt(n,t){if(n&1&&(o(0,"section",28),P(1,"div",55),o(2,"div",56)(3,"aside",57)(4,"p",58),a(5,"01 / About"),i(),o(6,"h2",59),a(7,"Who I am & how I think"),i(),o(8,"p",60),a(9," The story first. Credentials exist to prove it, not to replace it. "),i(),_(10,yt,9,3,"dl",61),i(),o(11,"div",62)(12,"blockquote",63)(13,"span",64),a(14,"\u201C"),i(),o(15,"p",65),a(16),i()(),o(17,"div",66),C(18,Mt,2,3,"span",67,L),i()()()()),n&2){let e=s(),r=g(0);l(10),m(r.location?10:-1),l(6),d(e.bioText()),l(2),x(e.skillFlat().slice(0,8))}}function kt(n,t){n&1&&P(0,"span",79)}function Ot(n,t){n&1&&(o(0,"time",83),a(1),i()),n&2&&(l(),d(t))}function St(n,t){if(n&1&&(o(0,"li",76)(1,"div",77),P(2,"span",78),_(3,kt,1,0,"span",79),i(),o(4,"article",80)(5,"div",81)(6,"span",82),a(7),i(),_(8,Ot,2,1,"time",83),i(),o(9,"div",84)(10,"p",85),a(11),i(),o(12,"h3",86),a(13),i(),o(14,"p",87),a(15),i()(),o(16,"div",88)(17,"span",89),a(18),i(),P(19,"span",90),i()()()),n&2){let e,r=t.$implicit,c=t.$index,p=t.$count,f=s(2);E("--i",c),T("is-last",c===p-1),l(3),m(c!==p-1?3:-1),l(4),d(f.padIndex(c)),l(),m((e=f.dateRange(r.start_date,r.end_date))?8:-1,e),l(3),d(r.company),l(2),d(r.role),l(2),d(r.one_liner),l(3),d((r.company||r.role).charAt(0))}}function Et(n,t){if(n&1&&(o(0,"section",29),P(1,"div",71),o(2,"header",72)(3,"div")(4,"p",58),a(5,"02 / Experience"),i(),o(6,"h2",59),a(7,"Evidence from the field"),i()(),o(8,"p",73),a(9," Each role is a chapter in how I work. The title and dates are footnotes to the thinking. "),i()(),o(10,"ol",74),C(11,St,20,11,"li",75,rt),i()()),n&2){s();let e=g(0);l(11),x(e.experience)}}function Tt(n,t){if(n&1&&(o(0,"li"),a(1),i()),n&2){let e=t.$implicit;l(),d(e)}}function It(n,t){if(n&1&&(o(0,"ul",104),C(1,Tt,2,1,"li",null,L),i()),n&2){let e=s().$implicit;l(),x(e.tech_stack)}}function Ft(n,t){if(n&1&&(o(0,"a",106),a(1,"View piece"),i()),n&2){let e=s().$implicit;u("href",e.live_url,y)}}function zt(n,t){if(n&1&&(o(0,"a",106),a(1,"Source"),i()),n&2){let e=s().$implicit;u("href",e.repo_url,y)}}
1function Lt(n,t){if(n&1&&(o(0,"article",94)(1,"div",95)(2,"span",96),a(3),i(),o(4,"span",97),a(5),i(),P(6,"span",98)(7,"span",99),i(),o(8,"div",100)(9,"p",101),a(10,"Case study"),i(),o(11,"h3",102),a(12),i(),o(13,"p",103),a(14),i(),_(15,It,3,0,"ul",104),o(16,"div",105),_(17,Ft,2,1,"a",106)(18,zt,2,1,"a",106),i()()()),n&2){let e=t.$implicit,r=t.$index,c=s(2);E("--i",r),l(3),d(c.padIndex(r)),l(2),d(e.name.charAt(0)),l(7),d(e.name),l(2),d(e.one_liner),l(),m(e.tech_stack!=null&&e.tech_stack.length?15:-1),l(2),m(e.live_url?17:-1),l(),m(e.repo_url?18:-1)}}function jt(n,t){if(n&1&&(o(0,"li"),P(1,"span",111),a(2),i()),n&2){let e=t.$implicit,r=t.$index;E("--i",r),l(2),O(" ",e," ")}}function $t(n,t){if(n&1&&(o(0,"div",93)(1,"div",107)(2,"p",58),a(3,"Pipeline"),i(),o(4,"h3",108),a(5,"Technical constellation"),i()(),o(6,"ul",109),C(7,jt,3,3,"li",110,L),i()()),n&2){let e=s(2);l(7),x(e.skillFlat())}}function Vt(n,t){if(n&1&&(o(0,"section",30),P(1,"div",55),o(2,"header",72)(3,"div")(4,"p",58),a(5,"03 / Craft"),i(),o(6,"h2",59),a(7,"Pieces suspended in darkness"),i()(),o(8,"p",73),a(9," Full-bleed studies. One obsession at a time, lit like a gallery wall. "),i()(),o(10,"div",91),C(11,Lt,19,9,"article",92,at),i(),_(13,$t,9,0,"div",93),i()),n&2){let e=s();l(11),x(e.craftProjects()),l(2),m(e.skillFlat().length?13:-1)}}function Rt(n,t){if(n&1&&(o(0,"span",118),a(1),i()),n&2){let e=s().$implicit;l(),O(" \xB7 ",e.field,"")}}function At(n,t){if(n&1&&(o(0,"p",120),a(1),i()),n&2){let e=s().$implicit;l(),d(e.end_date)}}function Bt(n,t){if(n&1&&(o(0,"article",114),P(1,"div",115),o(2,"p",116),a(3),i(),o(4,"h3",117),a(5),_(6,Rt,2,1,"span",118),i(),o(7,"p",119),a(8),i(),_(9,At,2,1,"p",120),i()),n&2){let e=t.$implicit,r=t.$index,c=s(2);E("--i",r),l(3),d(c.padIndex(r)),l(2),O(" ",e.degree,""),l(),m(e.field?6:-1),l(2),d(e.institution),l(),m(e.end_date?9:-1)}}function Ht(n,t){if(n&1&&(o(0,"section",31),P(1,"div",71),o(2,"header",72)(3,"div")(4,"p",58),a(5,"Formation"),i(),o(6,"h2",59),a(7,"Where the craft was forged"),i()(),o(8,"p",73),a(9,"Quiet credentials. Foundation under the work."),i()(),o(10,"div",112),C(11,Bt,10,7,"article",113,lt),i()()),n&2){s();let e=g(0);l(11),x(e.education)}}function Nt(n,t){if(n&1&&(o(0,"a",126),a(1),i()),n&2){s(2);let e=g(0);u("href","mailto:"+e.email,y),l(),d(e.email)}}function Dt(n,t){if(n&1&&(o(0,"a",127),a(1),i()),n&2){s(2);let e=g(0);u("href","tel:"+e.phone,y),l(),d(e.phone)}}function qt(n,t){if(n&1&&(o(0,"li")(1,"a",130),a(2),i()()),n&2){let e=t.$implicit;l(),u("href",e.href,y),l(),d(e.label)}}function Ut(n,t){if(n&1&&(o(0,"ul",129),C(1,qt,3,2,"li",null,ct),i()),n&2){let e=s(2);l(),x(e.socialEntries())}}function Wt(n,t){if(n&1){let e=k();o(0,"section",32)(1,"div",121),P(2,"div",122),o(3,"p",58),a(4,"05 / Contact"),i(),o(5,"h2",123),a(6,"Waiting to be understood"),i(),o(7,"p",124),a(8," If this way of working resonates, write. Prefer a clear brief over a cold pitch. "),i(),o(9,"div",125),_(10,Nt,2,2,"a",126)(11,Dt,2,2,"a",127),o(12,"button",128),h("click",function(){v(e);let c=s();return b(c.copyLink())}),a(13),i()(),_(14,Ut,3,0,"ul",129),i()()}if(n&2){let e=s(),r=g(0);l(10),m(r.email?10:-1),l(),m(r.phone?11:-1),l(2),O(" ",e.linkCopied()?"Link copied":"Copy portfolio link"," "),l(),m(e.socialEntries().length?14:-1)}}var ie=class n{portfolio;cursorEl;platformId=z(B);hostEl=z(be);ngZone=z(ve);scrollProgress=M(0);depthCss=w(()=>String(this.scrollProgress()));activeSection=M("top");linkCopied=M(!1);cursorEnabled=M(!1);mobileNavOpen=M(!1);revealObserver=null;sectionObserver=null;revealFallbackTimer=null;removeCursorMove=null;monogram=w(()=>{let t=(this.portfolio?.displayName??"").trim();return t?t.charAt(0).toUpperCase():"A"});orbitNodes=w(()=>{let t=this.portfolio;if(!t)return[{label:"Craft",kind:"skill"},{label:"Systems",kind:"skill"},{label:"Product",kind:"skill"},{label:"Voice",kind:"skill"},{label:"Ship",kind:"milestone"},{label:"Learn",kind:"milestone"}];let e=Object.values(t.skillsGrouped??{}).flat().filter(Boolean).slice(0,8).map(p=>({label:p,kind:"skill"})),c=[...(t.experience??[]).slice(0,4).map(p=>({label:p.role||p.company,kind:"milestone"})),...e].slice(0,12);return c.length?c:[{label:"Craft",kind:"skill"},{label:"Systems",kind:"skill"},{label:"Product",kind:"skill"},{label:"Voice",kind:"skill"},{label:"Ship",kind:"milestone"},{label:"Learn",kind:"milestone"}]});orbitLabels=w(()=>{let t=this.orbitNodes(),e=Math.max(t.length,1);return t.map((r,c)=>he(xe({},r),{angle:c/e*360}))});
1navItems=w(()=>{if(!this.portfolio)return[];let e=[{id:"top",index:"00",label:"Origin"}],r=[{sid:"about",id:"about",index:"01",label:"About"},{sid:"experience",id:"experience",index:"02",label:"Experience"},{sid:"projects",id:"craft",index:"03",label:"Craft"},{sid:"education",id:"education",index:"04",label:"Formation"},{sid:"contact",id:"contact",index:"05",label:"Contact"}];for(let c of r)this.sectionVisible(c.sid)&&e.push({id:c.id,index:c.index,label:c.label});return e});craftProjects=w(()=>this.portfolio?.projects??[]);skillFlat=w(()=>Object.values(this.portfolio?.skillsGrouped??{}).flat().filter(Boolean));bioText=w(()=>(this.portfolio?.bio??"").trim());headlineText=w(()=>(this.portfolio?.headline??"").trim());padIndex(t){let e=t+1;return e<10?`0${e}`:String(e)}ngAfterViewInit(){if(!F(this.platformId))return;let t=typeof window.matchMedia=="function"&&window.matchMedia("(hover: hover) and (pointer: fine)").matches;this.cursorEnabled.set(t),t&&this.ngZone.runOutsideAngular(()=>{let e=r=>this.paintCursor(r);document.addEventListener("pointermove",e,{passive:!0}),this.removeCursorMove=()=>document.removeEventListener("pointermove",e)}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.bindReveals(),this.bindSectionSpy(),this.onWindowScroll()})})}ngOnDestroy(){this.revealObserver?.disconnect(),this.sectionObserver?.disconnect(),this.removeCursorMove?.(),this.removeCursorMove=null,this.revealFallbackTimer!=null&&(window.clearTimeout(this.revealFallbackTimer),this.revealFallbackTimer=null)}onWindowScroll(){if(!F(this.platformId))return;let t=document.documentElement,e=Math.max(1,t.scrollHeight-window.innerHeight);this.scrollProgress.set(window.scrollY/e)}paintCursor(t){let e=this.cursorEl?.nativeElement;if(!e)return;e.style.transform=`translate(${t.clientX}px, ${t.clientY}px)`;let r=t.target,c=r instanceof Element&&!!r.closest("a, button, .cin-topnav__link, .cin-study__link, .cin-panel, .cin-btn");e.classList.toggle("is-hot",c)}sectionVisible(t){let e=this.portfolio;if(!e)return!1;let r=(e.sections??[]).find(c=>c.id===t);if(r&&r.visible===!1)return!1;switch(t){case"about":return!!this.bioText();case"experience":return(e.experience?.length??0)>0;case"projects":return(e.projects?.length??0)>0||this.skillFlat().length>0;case"skills":return this.skillFlat().length>0;case"education":return(e.education?.length??0)>0;case"contact":return!!(e.email||e.phone||e.location||this.socialEntries().length);default:return!0}}socialEntries(){let t=this.portfolio?.socialLinks??{},e=[];return t.linkedin&&e.push({label:"LinkedIn",href:t.linkedin}),t.github&&e.push({label:"GitHub",href:t.github}),t.twitter&&e.push({label:"Twitter",href:t.twitter}),t.website&&e.push({label:"Web",href:t.website}),e}dateRange(t,e){let r=(t??"").trim(),c=(e??"").trim()||"Present";return!r&&!e?"":r?`${r} - ${c}`:c}scrollTo(t,e){if(e?.preventDefault(),e?.stopPropagation(),this.mobileNavOpen.set(!1),!F(this.platformId))return;let r=t==="top"?"cin-top":t,c=this.hostEl.nativeElement,p=c.querySelector(`#${CSS.escape(r)}`)??document.getElementById(r);if(!p)return;let f=getComputedStyle(c).getPropertyValue("--cin-nav-h").trim(),S=Number.parseFloat(f)||60,I=p.getBoundingClientRect().top+window.scrollY-S-10;window.scrollTo({top:Math.max(0,I),behavior:"smooth"}),this.activeSection.set(t)}toggleMobileNav(){this.mobileNavOpen.update(t=>!t)}closeMobileNav(){this.mobileNavOpen.set(!1)}copyLink(){return D(this,null,function*(){if(!F(this.platformId))return;let t=`${window.location.origin}/p/${this.portfolio.slug}`;try{yield navigator.clipboard.writeText(t),this.linkCopied.set(!0),window.setTimeout(()=>this.linkCopied.set(!1),2e3)}catch{this.linkCopied.set(!1)}})}bindReveals(){let t=this.hostEl.nativeElement,e=Array.from(t.querySelectorAll(".cin-reveal"));if(!e.length){this.revealFallbackTimer=window.setTimeout(()=>{let r=Array.from(t.querySelectorAll(".cin-reveal"));r.length?this.observeReveals(r):this.forceRevealVisible()},120);return}this.observeReveals(e)}observeReveals(t){if(typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches){t.forEach(r=>r.classList.add("is-in"));return}this.revealObserver?.disconnect(),this.revealObserver=new IntersectionObserver(r=>{for(let c of r){if(!c.isIntersecting)continue;let p=c.target;p instanceof HTMLElement&&(p.classList.add("is-in"),this.revealObserver?.unobserve(p))}},{rootMargin:"0px 0px -8% 0px",threshold:.08}),t.forEach(r=>this.revealObserver.observe(r)),this.revealFallbackTimer=window.setTimeout(()=>this.forceRevealVisible(),900)}forceRevealVisible(){let t=this.hostEl.nativeElement;Array.from(t.querySelectorAll(".cin-reveal:not(.is-in)")).forEac
1h(e=>{e.classList.add("is-in")})}bindSectionSpy(){let t=this.hostEl.nativeElement,r=this.navItems().map(c=>c.id==="top"?"cin-top":c.id).map(c=>t.querySelector(`#${c}`)).filter(c=>c instanceof HTMLElement);r.length&&(this.sectionObserver?.disconnect(),this.sectionObserver=new IntersectionObserver(c=>{let p=c.filter(S=>S.isIntersecting&&S.target instanceof HTMLElement).sort((S,I)=>I.intersectionRatio-S.intersectionRatio)[0];if(!p?.target||!(p.target instanceof HTMLElement))return;let f=p.target.id==="cin-top"?"top":p.target.id;this.activeSection.set(f)},{rootMargin:"-35% 0px -45% 0px",threshold:[.1,.4,.7]}),r.forEach(c=>this.sectionObserver.observe(c)))}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=H({type:n,selectors:[["app-cinema-portfolio"]],viewQuery:function(e,r){if(e&1&&V(it,5),e&2){let c;R(c=A())&&(r.cursorEl=c.first)}},hostAttrs:[1,"cin-host"],hostVars:6,hostBindings:function(e,r){e&1&&h("scroll",function(){return r.onWindowScroll()},!1,Pe),e&2&&(E("--cin-depth",r.depthCss()),T("cin-host--cursor",r.cursorEnabled())("cin-host--deep",r.scrollProgress()>.14))},inputs:{portfolio:"portfolio"},decls:53,vars:26,consts:[["cursorEl",""],["aria-hidden","true",1,"cin-cursor"],["aria-hidden","true",1,"cin-atmosphere"],["accent","#e8a54b",3,"monogram","nodes","scrollProgress"],[1,"cin-monogram"],[1,"cin-orbit-scroll"],[1,"cin-orbit"],[1,"cin-node",3,"--a"],[1,"cin-atmosphere__veil"],[1,"cin-topnav"],["href","#cin-top",1,"cin-wordmark",3,"click"],["aria-label","Sections",1,"cin-topnav__nav"],[1,"cin-topnav__end"],["type","button","aria-controls","cin-mobile-nav","aria-label","Open section menu",1,"cin-topnav__menu",3,"click"],["aria-hidden","true",1,"cin-topnav__menu-bars"],[1,"cin-topnav__cta",3,"href"],["id","cin-mobile-nav","role","dialog","aria-label","Sections",1,"cin-mobile-nav"],["itemscope","","itemtype","https://schema.org/Person",1,"cin"],["id","cin-top",1,"cin-hero"],[1,"cin-hero__copy","cin-reveal"],[1,"cin-hero__eyebrow"],["itemprop","jobTitle",1,"cin-hero__headline"],["itemprop","name",1,"cin-hero__headline"],["itemprop","description",1,"cin-hero__lede"],[1,"cin-hero__actions"],["type","button",1,"cin-btn"],[1,"cin-btn","cin-btn--ghost",3,"href"],["aria-hidden","true",1,"cin-hero__scroll"],["id","about",1,"cin-section","cin-section--about"],["id","experience",1,"cin-section","cin-section--exp"],["id","craft",1,"cin-section","cin-section--craft"],["id","education",1,"cin-section","cin-section--edu"],["id","contact",1,"cin-section","cin-section--contact"],[1,"cin-footer"],[1,"cin-footer__brand"],["itemprop","name"],["aria-hidden","true",1,"cin-footer__sep"],["routerLink","/",1,"cin-footer__akalan"],["routerLink","/dashboard/portfolio",1,"cin-footer__cta"],[1,"cin-cursor__h"],[1,"cin-cursor__v"],[1,"cin-cursor__ring"],[1,"cin-node"],[1,"cin-node__dot"],[1,"cin-node__label"],["type","button",1,"cin-topnav__link",3,"is-active"],["type","button",1,"cin-topnav__link",3,"click"],[1,"cin-topnav__idx"],[1,"cin-topnav__label"],["type","button","aria-label","Close menu",1,"cin-mobile-nav__scrim",3,"click"],["aria-label","Sections",1,"cin-mobile-nav__panel"],[1,"cin-mobile-nav__eyebrow"],["type","button",1,"cin-mobile-nav__link",3,"is-active"],["type","button",1,"cin-mobile-nav__link",3,"click"],["type","button",1,"cin-btn",3,"click"],["aria-hidden","true",1,"cin-section__glow"],[1,"cin-section__grid","cin-reveal"],[1,"cin-section__aside"],[1,"cin-kicker"],[1,"cin-display"],[1,"cin-aside-note"],[1,"cin-facts"],[1,"cin-section__main"],[1,"cin-quote"],["aria-hidden","true",1,"cin-quote__mark"],["itemprop","description",1,"cin-quote__body"],["aria-label","Signal skills",1,"cin-orbit-strip"],[1,"cin-orbit-strip__item",3,"--i"],["itemprop","address","itemscope","","itemtype","https://schema.org/PostalAddress"],["itemprop","addressLocality"],[1,"cin-orbit-strip__item"],["aria-hidden","true",1,"cin-section__glow","cin-section__glow--alt"],[1,"cin-section__head","cin-reveal"],[1,"cin-section__lead"],[1,"cin-timeline"],[1,"cin-timeline__item","cin-reveal",3,"is-last","--i"],[1,"cin-timeline__item","cin-reveal"],["aria-hidden","true",1,"cin-timeline__rail"],[1,"cin-timeline__node"],[1,"cin-timeline__ar
1c"],[1,"cin-panel"],[1,"cin-panel__meta"],[1,"cin-panel__idx"],[1,"cin-panel__when"],[1,"cin-panel__body"],["itemprop","worksFor",1,"cin-panel__org"],["itemprop","jobTitle",1,"cin-panel__title"],[1,"cin-panel__copy"],["aria-hidden","true",1,"cin-panel__stage"],[1,"cin-panel__glyph"],[1,"cin-panel__mesh"],[1,"cin-studies"],[1,"cin-study","cin-reveal",3,"--i"],[1,"cin-toolkit","cin-reveal"],[1,"cin-study","cin-reveal"],["aria-hidden","true",1,"cin-study__visual"],[1,"cin-study__num"],[1,"cin-study__glyph"],[1,"cin-study__ring"],[1,"cin-study__grain"],[1,"cin-study__content"],[1,"cin-study__eyebrow"],[1,"cin-study__name"],[1,"cin-study__copy"],[1,"cin-study__tags"],[1,"cin-study__links"],["target","_blank","rel","noopener noreferrer",1,"cin-study__link",3,"href"],[1,"cin-toolkit__head"],[1,"cin-toolkit__title"],[1,"cin-toolkit__list"],[3,"--i"],["aria-hidden","true",1,"cin-toolkit__dot"],[1,"cin-edu-grid"],[1,"cin-edu-card","cin-reveal",3,"--i"],[1,"cin-edu-card","cin-reveal"],["aria-hidden","true",1,"cin-edu-card__accent"],[1,"cin-edu-card__idx"],[1,"cin-edu-card__degree"],[1,"cin-edu-card__field"],[1,"cin-edu-card__school"],[1,"cin-edu-card__when"],[1,"cin-contact-stage","cin-reveal"],["aria-hidden","true",1,"cin-contact-stage__glow"],[1,"cin-display","cin-display--xl"],[1,"cin-section__lead","cin-section__lead--center"],[1,"cin-contact"],["itemprop","email",1,"cin-btn","cin-btn--lg",3,"href"],["itemprop","telephone",1,"cin-link",3,"href"],["type","button",1,"cin-btn","cin-btn--ghost","cin-btn--lg",3,"click"],[1,"cin-social"],["target","_blank","rel","noopener noreferrer","itemprop","sameAs",3,"href"]],template:function(e,r){if(e&1){let c=k();q(0),_(1,st,5,0,"div",1),o(2,"div",2),P(3,"app-cinema-stage",3),o(4,"div",4),a(5),i(),o(6,"div",5)(7,"div",6),C(8,pt,4,3,"div",7,ot),i()(),P(10,"div",8),i(),o(11,"header",9)(12,"a",10),h("click",function(f){return v(c),b(r.scrollTo("top",f))}),a(13),i(),o(14,"nav",11),C(15,dt,1,1,null,null,Ye),i(),o(17,"div",12)(18,"button",13),h("click",function(){return v(c),b(r.toggleMobileNav())}),P(19,"span",14),i(),_(20,_t,2,1,"a",15),i()(),_(21,gt,7,0,"div",16),o(22,"article",17)(23,"header",18)(24,"div",19)(25,"p",20),a(26,"A gallery of one obsession"),i(),_(27,ut,2,1,"h1",21)(28,Ct,2,1,"h1",22)(29,xt,3,5,"p",23),o(30,"div",24),_(31,ht,2,0,"button",25)(32,vt,2,1,"a",26),i()(),o(33,"p",27)(34,"span"),a(35,"Scroll to assemble"),i()()(),_(36,wt,20,2,"section",28)(37,Et,13,0,"section",29)(38,Vt,14,1,"section",30)(39,Ht,13,0,"section",31)(40,Wt,15,4,"section",32),o(41,"footer",33)(42,"div",34)(43,"span",35),a(44),i(),o(45,"span",36),a(46,"\xB7"),i(),o(47,"span"),a(48,"Built on "),o(49,"a",37),a(50,"Akalan"),i()()(),o(51,"a",38),a(52,"Create your portfolio"),i()()()}if(e&2){let c,p=U(r.portfolio);l(),m(r.cursorEnabled()?1:-1),l(2),u("monogram",r.monogram())("nodes",r.orbitNodes())("scrollProgress",r.scrollProgress()),l(2),d(r.monogram()),l(),E("transform","rotate("+r.scrollProgress()*120+"deg)"),T("is-dim",r.scrollProgress()>.12),l(2),x(r.orbitLabels()),l(3),T("is-scrolled",r.scrollProgress()>.02),l(2),d(p.displayName),l(2),x(r.navItems()),l(3),$("aria-expanded",r.mobileNavOpen()),l(2),m(p.email?20:-1),l(),m(r.mobileNavOpen()?21:-1),l(6),m(r.headlineText()?27:28),l(2),m((c=r.bioText())?29:-1,c),l(2),m(r.sectionVisible("about")?31:-1),l(),m(p.email?32:-1),l(4),m(r.sectionVisible("about")?36:-1),l(),m(r.sectionVisible("experience")?37:-1),l(),m(r.sectionVisible("projects")?38:-1),l(),m(r.sectionVisible("education")&&p.education.length?39:-1),l(),m(r.sectionVisible("contact")?40:-1),l(4),d(p.displayName)}},dependencies:[W,Oe,G,ne],styles:[`.cin-host[_nghost-%COMP%]{--cin-bg: #03060e;--cin-mid: #0a1220;--cin-ink: #f3efe6;--cin-muted: #8b95a8;--cin-accent: #e8a54b;--cin-accent-dim: rgba(232, 165, 75, .16);--cin-rule: rgba(139, 149, 168, .22);--cin-serif: "Fraunces", Georgia, "Times New Roman", serif;--cin-sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--cin-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--cin-nav-h: 3.75rem;--cin-depth: 0;display:block;min-height:100vh;color:var(--cin-ink);background:#02040a;font-family:var(--cin-sans)}.cin-host--cursor[_nghost-%COMP%], .cin-host--cursor[_nghost-%COMP%]   *[_ngcontent-%COMP%]{cursor:none!important}.cin-atmosphere[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;transform:scale(calc(1 + var(--cin-depth) * .04));opacity:calc(1 - var(--cin-depth) * .35);transition:opacity .12s linear}.cin-atmosphere[_ngcontent-%COMP%], .cin-atmosphere[_ngcontent-%COMP%]   *[_ngcontent-%COMP%]{pointer-events:none!important}.cin-host--deep[_nghost-%COMP%]   .cin-atmosphere[_ngcontent-%COMP%]{opacity:calc(.55 - var(--cin-depth) * .18)}.cin-atmosphere__veil[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;background:radial-gradient(ellipse 55% 50% at 55% 42%,transparent 0%,rgba(2,4,10,.28) 58%,rgba(2,4,10,.72) 100%),linear-gradient(180deg,#03060e1f,#02040a66);opacity:calc(.22 + var(--cin-depth) * .45)}.cin-monogram[_ngcontent-%COMP%]{position:absolute;
1left:50%;top:48%;z-index:1;transform:translate(-50%,-50%);font-family:var(--cin-serif);font-size:clamp(7.5rem,28vw,14rem);font-weight:700;line-height:1;letter-spacing:-.04em;color:#f0e6d4;background:linear-gradient(155deg,#f4f1ea 0%,#f0e6d4 42%,var(--cin-accent) 72%,#d9c4a0 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 12px 28px rgba(232,165,75,.28));opacity:.92;-webkit-user-select:none;user-select:none}.cin-orbit-scroll[_ngcontent-%COMP%]{position:absolute;inset:6% 0;z-index:1;transform-origin:50% 48%;transition:opacity .28s ease}.cin-orbit-scroll.is-dim[_ngcontent-%COMP%]{opacity:.38}.cin-orbit-scroll.is-dim[_ngcontent-%COMP%]   .cin-node__label[_ngcontent-%COMP%]{opacity:0}.cin-orbit[_ngcontent-%COMP%]{position:absolute;inset:0;transform-origin:50% 50%;animation:_ngcontent-%COMP%_cin-orbit-spin 90s linear infinite}@keyframes _ngcontent-%COMP%_cin-orbit-spin{to{transform:rotate(360deg)}}.cin-cursor[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:0;height:0;z-index:100;pointer-events:none;mix-blend-mode:difference}.cin-cursor__h[_ngcontent-%COMP%], .cin-cursor__v[_ngcontent-%COMP%]{position:absolute;background:var(--cin-accent);opacity:.85}.cin-cursor__h[_ngcontent-%COMP%]{width:22px;height:1px;left:-11px;top:0}.cin-cursor__v[_ngcontent-%COMP%]{width:1px;height:22px;left:0;top:-11px}.cin-cursor__ring[_ngcontent-%COMP%]{position:absolute;left:-14px;top:-14px;width:28px;height:28px;border:1px solid color-mix(in srgb,var(--cin-accent) 70%,white);border-radius:50%;transition:transform .16s ease,border-color .16s ease}.cin-cursor.is-hot[_ngcontent-%COMP%]   .cin-cursor__ring[_ngcontent-%COMP%]{transform:scale(1.45);border-color:var(--cin-ink)}.cin-topnav[_ngcontent-%COMP%]{position:fixed;inset:0 0 auto;z-index:80;pointer-events:auto;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.75rem;min-height:var(--cin-nav-h);padding:max(.55rem,env(safe-area-inset-top)) clamp(1rem,3vw,1.75rem) .55rem;background:transparent;transition:background .22s ease,border-color .22s ease,backdrop-filter .22s ease;border-bottom:1px solid transparent}.cin-topnav[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .cin-topnav[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{pointer-events:auto;position:relative;z-index:1}.cin-topnav.is-scrolled[_ngcontent-%COMP%]{background:color-mix(in srgb,#03060e 78%,transparent);backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:var(--cin-rule)}.cin-wordmark[_ngcontent-%COMP%]{justify-self:start;font-family:var(--cin-serif);font-size:clamp(.95rem,1.5vw,1.12rem);font-weight:550;letter-spacing:-.02em;color:var(--cin-ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cin-topnav__nav[_ngcontent-%COMP%]{display:none;justify-content:center;gap:.15rem}@media (min-width: 860px){.cin-topnav__nav[_ngcontent-%COMP%]{display:flex}}.cin-topnav__link[_ngcontent-%COMP%]{appearance:none;border:none;background:transparent;display:inline-flex;align-items:baseline;gap:.35rem;min-height:2.5rem;padding:.35rem .7rem;font-family:var(--cin-mono);color:var(--cin-muted);border-radius:.35rem;cursor:pointer;transition:color .15s ease,background .15s ease}.cin-topnav__idx[_ngcontent-%COMP%]{font-size:.62rem;letter-spacing:.08em;opacity:.75}.cin-topnav__label[_ngcontent-%COMP%]{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.cin-topnav__link[_ngcontent-%COMP%]:hover, .cin-topnav__link.is-active[_ngcontent-%COMP%]{color:var(--cin-accent);background:var(--cin-accent-dim)}.cin-topnav__link.is-active[_ngcontent-%COMP%]   .cin-topnav__label[_ngcontent-%COMP%]{color:var(--cin-ink)}.cin-topnav__end[_ngcontent-%COMP%]{justify-self:end;display:inline-flex;align-items:center;gap:.45rem}.cin-topnav__menu[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid var(--cin-rule);border-radius:.4rem;background:#03060e73;color:var(--cin-ink);padding:0}.cin-topnav__menu-bars[_ngcontent-%COMP%], .cin-topnav__menu-bars[_ngcontent-%COMP%]:before, .cin-topnav__menu-bars[_ngcontent-%COMP%]:after{display:block;width:1rem;height:1.5px;background:currentColor;border-radius:1px;position:relative}.cin-topnav__menu-bars[_ngcontent-%COMP%]:before, .cin-topnav__menu-bars[_ngcontent-%COMP%]:after{content:"";position:absolute;
1left:0}.cin-topnav__menu-bars[_ngcontent-%COMP%]:before{top:-5px}.cin-topnav__menu-bars[_ngcontent-%COMP%]:after{top:5px}@media (min-width: 860px){.cin-topnav__menu[_ngcontent-%COMP%]{display:none}}.cin-mobile-nav[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:80}.cin-mobile-nav__scrim[_ngcontent-%COMP%]{position:absolute;inset:0;border:none;background:#02040ab8;backdrop-filter:blur(6px)}.cin-mobile-nav__panel[_ngcontent-%COMP%]{position:absolute;top:calc(var(--cin-nav-h) + env(safe-area-inset-top));right:max(.75rem,env(safe-area-inset-right));left:max(.75rem,env(safe-area-inset-left));display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid var(--cin-rule);border-radius:.75rem;background:color-mix(in srgb,#0a1220 94%,#03060e);box-shadow:0 18px 48px #00000073}.cin-mobile-nav__eyebrow[_ngcontent-%COMP%]{margin:0 0 .5rem;font-family:var(--cin-mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cin-muted)}.cin-mobile-nav__link[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:.75rem;min-height:3rem;padding:.65rem .75rem;border:none;border-radius:.45rem;background:transparent;color:var(--cin-ink);font-family:var(--cin-sans);font-size:1rem;text-align:left}.cin-mobile-nav__link[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]:first-child{font-family:var(--cin-mono);font-size:.7rem;color:var(--cin-muted)}.cin-mobile-nav__link.is-active[_ngcontent-%COMP%], .cin-mobile-nav__link[_ngcontent-%COMP%]:hover{background:var(--cin-accent-dim);color:var(--cin-accent)}.cin-topnav__cta[_ngcontent-%COMP%]{display:inline-flex;align-items:center;min-height:2.4rem;padding:0 .95rem;border-radius:.35rem;background:linear-gradient(135deg,#e8a54b,#c4842e);color:#120e08;font-size:.78rem;font-weight:750;letter-spacing:.04em;text-decoration:none;text-transform:uppercase}.cin[_ngcontent-%COMP%]{position:relative;z-index:1;overflow-x:visible}.cin-hero[_ngcontent-%COMP%], .cin-section[_ngcontent-%COMP%], .cin-footer[_ngcontent-%COMP%]{scroll-margin-top:calc(var(--cin-nav-h) + .75rem)}.cin-hero[_ngcontent-%COMP%]{position:relative;z-index:1;min-height:100vh;min-height:100dvh;display:flex;align-items:flex-end;padding:calc(var(--cin-nav-h) + 2rem) clamp(1.15rem,4vw,2.5rem) clamp(2rem,6vh,3.5rem);isolation:isolate}.cin-node[_ngcontent-%COMP%]{position:absolute;left:50%;top:50%;width:0;height:0;transform:rotate(var(--a)) translate(min(42vw,18rem)) rotate(calc(var(--a) * -1))}.cin-node__dot[_ngcontent-%COMP%]{display:block;width:7px;height:7px;border-radius:50%;background:var(--cin-accent);box-shadow:0 0 16px var(--cin-accent),0 0 2px #fff8;margin:-3px 0 0 -3px}.cin-node__label[_ngcontent-%COMP%]{position:absolute;left:10px;top:-.55rem;white-space:nowrap;font-family:var(--cin-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--cin-muted) 80%,var(--cin-accent));max-width:9rem;overflow:hidden;text-overflow:ellipsis}@media (max-width: 699px){.cin-node__label[_ngcontent-%COMP%]{display:none}}.cin-hero__copy[_ngcontent-%COMP%]{position:relative;z-index:2;max-width:36rem}.cin-hero__eyebrow[_ngcontent-%COMP%], .cin-kicker[_ngcontent-%COMP%]{margin:0 0 .85rem;font-family:var(--cin-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cin-accent)}.cin-hero__headline[_ngcontent-%COMP%], .cin-display[_ngcontent-%COMP%]{margin:0;font-family:var(--cin-serif);font-size:clamp(1.85rem,4.6vw,3.1rem);font-weight:550;line-height:1.12;letter-spacing:-.03em}.cin-display--xl[_ngcontent-%COMP%]{font-size:clamp(2.1rem,5.5vw,3.6rem);text-align:center}.cin-hero__lede[_ngcontent-%COMP%]{margin:1.1rem 0 0;font-size:1.05rem;line-height:1.65;color:var(--cin-muted);max-width:32rem}.cin-hero__actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}.cin-hero__scroll[_ngcontent-%COMP%]{position:absolute;right:clamp(1rem,3vw,2rem);bottom:clamp(1.5rem,4vh,2.5rem);z-index:2;margin:0;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--cin-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cin-muted);opacity:.7}.cin-section[_ngcontent-%COMP%]{position:relative;z-index:1;padding:clamp(4.5rem,12vh,7.5rem) clamp(1.15rem,4vw,2.75rem);isolation:isolate;background:linear-gradient(180deg,color-mix(in srgb,#03060e 72%,transparent),color-mix(in srgb,#03060e 88%,transparent) 40%,color-mix(in srgb,#02040a 92%,transparent));backdrop-filter:blur(.5px)}.cin-section__glow[_ngcontent-%COMP%]{position:absolute;inset:10% -20% auto;height:50%;background:radial-gradient(ellipse at 30% 40%,rgba(232,165,75,.09),transparent 60%);pointer-events:none;z-index:0}.cin-section__glow--alt[_ngcontent-%COMP%]{background:radial-gradient(ellipse at 80% 30%,rgba(74,111,165,.16),transparent 55%)}.cin-section__head[_ngcontent-%COMP%]{position:relative;z-index:1;display:grid;gap:1rem;margin-bottom:clamp(2.25rem,6vh,3.5rem);max-width:68rem}@media (min-width: 900px){.cin-section__head[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;gap:2.5rem}}.cin-section__lead[_ngcontent-%COMP%]{margin:0;color:var(--cin-muted);font-size:1.02rem;line-height:1.6;max-width:28rem}.cin-section__lead--center[_ngcontent-%COMP%]{margin-inline:auto;text-align:center}.cin-section__grid[_ngcontent-%COMP%]{position:relative;z-index:1;display:grid;gap:clamp(2rem,5vw,3.5rem);max-width:72rem;margin:0 auto}@media (min-width: 960px){.cin-section__grid[_ngcontent-%COMP%]{grid-template-columns:minmax(14rem,.85fr) minmax(0,1.4fr);gap:3.5rem}}.cin-aside-note[_ngcontent-%COMP%]{margin:1rem 0 0;color:var(--cin-muted);font-size:.95rem;line-height:1.55;max-width:22rem}.cin-facts[_ngcontent-%COMP%]{margin:2rem 0 0;display:grid;gap:1rem}.cin-facts[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]{padding-top:.85rem;border-top:1px solid var(--cin-rule)}.cin-facts[_ngcontent-%COMP%]   dt[_ngcontent-%COMP%]{font-family:var(--cin-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cin-muted);margin-bottom:.25rem}.cin-facts[_ngcontent-%COMP%]   dd[_ngcontent-%COMP%]{margin:0;font-family:var(--cin-serif);font-size:1.15rem}.cin-quote[_ngcontent-%COMP%]{position:relative;margin:0;padding:clamp(1.5rem,3vw,2.25rem);border:1px solid var(--cin-rule);border-radius:1.1rem;background:linear-gradient(145deg,#101828d9,#080c168c);box-shadow:0 24px 60px #00000059}.cin-quote__mark[_ngcontent-%COMP%]{display:block;font-family:var(--cin-serif);font-size:4rem;line-height:.7;color:var(--cin-accent);opacity:.55;margin-bottom:.5rem}
1.cin-quote__body[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.08rem,2.1vw,1.28rem);line-height:1.75;color:color-mix(in srgb,var(--cin-ink) 92%,var(--cin-muted))}.cin-orbit-strip[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.35rem}.cin-orbit-strip__item[_ngcontent-%COMP%]{font-family:var(--cin-mono);font-size:.68rem;letter-spacing:.06em;padding:.4rem .7rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--cin-accent) 35%,var(--cin-rule));background:var(--cin-accent-dim);color:color-mix(in srgb,var(--cin-ink) 90%,var(--cin-accent))}.cin-timeline[_ngcontent-%COMP%]{position:relative;z-index:1;list-style:none;margin:0 auto;padding:0;max-width:72rem;display:flex;flex-direction:column;gap:1.35rem}.cin-timeline__item[_ngcontent-%COMP%]{display:grid;grid-template-columns:1.25rem 1fr;gap:.85rem}@media (min-width: 700px){.cin-timeline__item[_ngcontent-%COMP%]{grid-template-columns:1.5rem 1fr;gap:1.25rem}}.cin-timeline__rail[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:1.6rem}.cin-timeline__node[_ngcontent-%COMP%]{width:.7rem;height:.7rem;border-radius:50%;background:var(--cin-bg);border:2px solid var(--cin-accent);box-shadow:0 0 0 4px var(--cin-accent-dim);flex-shrink:0;z-index:1}.cin-timeline__arc[_ngcontent-%COMP%]{flex:1;width:2px;margin-top:.35rem;background:linear-gradient(180deg,var(--cin-accent),transparent);opacity:.45;min-height:4rem}.cin-panel[_ngcontent-%COMP%]{display:grid;gap:1rem;padding:clamp(1.25rem,3vw,1.85rem);border:1px solid var(--cin-rule);border-radius:1.15rem;background:linear-gradient(160deg,#121a2aeb,#080c14b8);overflow:hidden;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}@media (min-width: 860px){.cin-panel[_ngcontent-%COMP%]{grid-template-columns:6.5rem minmax(0,1fr) minmax(7rem,10rem);align-items:stretch;gap:1.5rem}}@media (hover: hover) and (prefers-reduced-motion: no-preference){.cin-panel[_ngcontent-%COMP%]:hover{border-color:color-mix(in srgb,var(--cin-accent) 45%,var(--cin-rule));transform:translateY(-3px);box-shadow:0 22px 50px #00000059}}.cin-panel__meta[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.45rem}.cin-panel__idx[_ngcontent-%COMP%]{font-family:var(--cin-mono);font-size:.72rem;letter-spacing:.16em;color:var(--cin-accent)}.cin-panel__when[_ngcontent-%COMP%]{font-family:var(--cin-mono);font-size:.68rem;letter-spacing:.06em;color:var(--cin-muted)}.cin-panel__org[_ngcontent-%COMP%]{margin:0;font-size:.82rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--cin-accent)}.cin-panel__title[_ngcontent-%COMP%]{margin:.35rem 0 0;font-family:var(--cin-serif);font-size:clamp(1.35rem,2.6vw,1.85rem);font-weight:550;letter-spacing:-.02em;line-height:1.2}.cin-panel__copy[_ngcontent-%COMP%]{margin:.85rem 0 0;font-size:1rem;line-height:1.65;color:color-mix(in srgb,var(--cin-ink) 86%,var(--cin-muted));max-width:40rem}.cin-panel__stage[_ngcontent-%COMP%]{position:relative;min-height:6.5rem;border-radius:.75rem;overflow:hidden;background:radial-gradient(circle at 35% 40%,rgba(232,165,75,.28),transparent 55%),linear-gradient(145deg,#1a2230,#0a0e16);display:grid;place-items:center}.cin-panel__glyph[_ngcontent-%COMP%]{position:relative;z-index:1;font-family:var(--cin-serif);font-size:3rem;font-weight:650;color:color-mix(in srgb,var(--cin-ink) 22%,transparent)}.cin-panel__mesh[_ngcontent-%COMP%]{position:absolute;inset:0;background-image:linear-gradient(rgba(244,241,234,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(244,241,234,.05) 1px,transparent 1px);background-size:18px 18px;opacity:.7}.cin-studies[_ngcontent-%COMP%]{position:relative;z-index:1;display:flex;flex-direction:column;gap:clamp(1.5rem,4vh,2.25rem);max-width:72rem;margin:0 auto}.cin-study[_ngcontent-%COMP%]{display:grid;gap:0;border:1px solid var(--cin-rule);border-radius:1.25rem;overflow:hidden;background:#080c14a6;min-height:min(70vh,28rem);transition:border-color .2s ease,box-shadow .2s ease}@media (min-width: 860px){.cin-study[_ngcontent-%COMP%]{grid-template-columns:minmax(14rem,.95fr) minmax(0,1.15fr)}.cin-study[_ngcontent-%COMP%]:nth-child(2n)   .cin-study__visual[_ngcontent-%COMP%]{order:2}}@media (hover: hover) and (prefers-reduced-motion: no-preference){.cin-study[_ngcontent-%COMP%]:hover{border-color:color-mix(in srgb,var(--cin-accent) 40%,var(--cin-rule));box-shadow:0 28px 60px #0006}}.cin-study__visual[_ngcontent-%COMP%]{position:relative;min-height:14rem;background:radial-gradient(circle at 40% 45%,rgba(232,165,75,.3),transparent 50%),radial-gradient(circle at 80% 20%,rgba(74,111,165,.25),transparent 45%),linear-gradient(155deg,#141c2c,#070a12);display:grid;place-items:center;overflow:hidden}.cin-study__num[_ngcontent-%COMP%]{position:absolute;top:1.1rem;left:1.1rem;font-family:var(--cin-mono);font-size:.72rem;letter-spacing:.16em;color:var(--cin-accent);z-index:2}.cin-study__glyph[_ngcontent-%COMP%]{position:relative;z-index:1;font-family:var(--cin-serif);font-size:clamp(4.5rem,12vw,7rem);font-weight:650;color:color-mix(in srgb,var(--cin-ink) 18%,transparent);line-height:1}.cin-study__ring[_ngcontent-%COMP%]{position:absolute;width:min(55%,12rem);aspect-ratio:1;border:1px solid color-mix(in srgb,var(--cin-accent) 40%,transparent);border-radius:50%;animation:_ngcontent-%COMP%_cin-spin 36s linear infinite}.cin-study__grain[_ngcontent-%COMP%]{position:absolute;inset:0;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}@keyframes _ngcontent-%COMP%_cin-spin{to{transform:rotate(360deg)}}.cin-study__content[_ngcontent-%COMP%]{padding:clamp(1.5rem,3.5vw,2.35rem);display:flex;flex-direction:column;justify-content:center}.cin-study__eyebrow[_ngcontent-%COMP%]{margin:0 0 .5rem;font-family:var(--cin-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cin-accent)}.cin-study__name[_ngcontent-%COMP%]{margin:0;font-family:var(--cin-serif);font-size:clamp(1.55rem,3vw,2.15rem);font-weight:550;letter-spacing:-.025em;line-height:1.15}.cin-study__copy[_ngcontent-%COMP%]{margin:1rem 0 0;font-size:1.02rem;line-height:1.65;color:color-mix(in srgb,var(--cin-ink) 86%,var(--cin-muted))}.cin-study__tags[_ngcontent-%COMP%]{list-style:none;margin:1.15rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}.cin-study__tags[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{font-family:var(--cin-mono);font-size:.68rem;letter-spacing:.05em;padding:.35rem .65rem;border-radius:.35rem;border:1px solid var(--cin-rule);color:var(--cin-muted)}.cin-study__links[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1.35rem}
1.cin-study__link[_ngcontent-%COMP%]{font-size:.88rem;font-weight:650;color:var(--cin-accent);text-decoration:underline;text-underline-offset:.2em}.cin-toolkit[_ngcontent-%COMP%]{position:relative;z-index:1;max-width:72rem;margin:clamp(2.5rem,7vh,4rem) auto 0;padding:clamp(1.5rem,3vw,2rem);border:1px solid var(--cin-rule);border-radius:1.15rem;background:linear-gradient(160deg,#0e1422e6,#060a12b3)}.cin-toolkit__title[_ngcontent-%COMP%]{margin:.35rem 0 0;font-family:var(--cin-serif);font-size:clamp(1.25rem,2.2vw,1.6rem);font-weight:550}.cin-toolkit__list[_ngcontent-%COMP%]{list-style:none;margin:1.35rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.55rem}.cin-toolkit__list[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.55rem;min-height:2.6rem;padding:.45rem .75rem;border-radius:.55rem;border:1px solid var(--cin-rule);font-size:.88rem;font-weight:550;background:#03060e73}.cin-toolkit__dot[_ngcontent-%COMP%]{width:.4rem;height:.4rem;border-radius:50%;background:var(--cin-accent);box-shadow:0 0 8px var(--cin-accent);flex-shrink:0}.cin-edu-grid[_ngcontent-%COMP%]{position:relative;z-index:1;display:grid;gap:1rem;max-width:72rem;margin:0 auto}@media (min-width: 700px){.cin-edu-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}.cin-edu-card[_ngcontent-%COMP%]{position:relative;padding:1.5rem 1.5rem 1.5rem 1.65rem;border:1px solid var(--cin-rule);border-radius:1rem;background:linear-gradient(150deg,#101828e6,#070b14bf);overflow:hidden;transition:border-color .18s ease,transform .18s ease}@media (hover: hover) and (prefers-reduced-motion: no-preference){.cin-edu-card[_ngcontent-%COMP%]:hover{border-color:color-mix(in srgb,var(--cin-accent) 40%,var(--cin-rule));transform:translateY(-2px)}}.cin-edu-card__accent[_ngcontent-%COMP%]{position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--cin-accent),transparent)}.cin-edu-card__idx[_ngcontent-%COMP%]{margin:0 0 .75rem;font-family:var(--cin-mono);font-size:.68rem;letter-spacing:.14em;color:var(--cin-accent)}.cin-edu-card__degree[_ngcontent-%COMP%]{margin:0;font-family:var(--cin-serif);font-size:clamp(1.2rem,2.2vw,1.45rem);font-weight:550;letter-spacing:-.02em;line-height:1.25}.cin-edu-card__field[_ngcontent-%COMP%]{font-weight:450;color:var(--cin-muted)}.cin-edu-card__school[_ngcontent-%COMP%]{margin:.65rem 0 0;color:var(--cin-muted);font-size:.95rem}.cin-edu-card__when[_ngcontent-%COMP%]{margin:.85rem 0 0;font-family:var(--cin-mono);font-size:.72rem;letter-spacing:.08em;color:color-mix(in srgb,var(--cin-accent) 70%,var(--cin-muted))}.cin-contact-stage[_ngcontent-%COMP%]{position:relative;z-index:1;max-width:44rem;margin:0 auto;text-align:center;padding:clamp(2.5rem,6vw,3.5rem) clamp(1.25rem,3vw,2rem);border:1px solid var(--cin-rule);border-radius:1.35rem;background:linear-gradient(165deg,#121a2ae6,#060a12cc);overflow:hidden}.cin-contact-stage__glow[_ngcontent-%COMP%]{position:absolute;inset:-30% -10% auto;height:70%;background:radial-gradient(ellipse at 50% 0%,rgba(232,165,75,.18),transparent 60%);pointer-events:none}.cin-contact[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;justify-content:center;align-items:center}.cin-link[_ngcontent-%COMP%]{color:var(--cin-muted);text-decoration:none;font-size:.95rem}.cin-link[_ngcontent-%COMP%]:hover{color:var(--cin-accent)}.cin-social[_ngcontent-%COMP%]{list-style:none;margin:1.75rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:1.25rem;justify-content:center}.cin-social[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{font-family:var(--cin-mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cin-muted);text-decoration:none}.cin-social[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:var(--cin-accent)}.cin-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.55rem 1.2rem;border-radius:.35rem;border:1px solid transparent;background:linear-gradient(135deg,#e8a54b,#c4842e);color:#120e08;font-family:inherit;font-size:.88rem;font-weight:700;text-decoration:none;cursor:pointer;transition:filter .16s ease}.cin-btn--lg[_ngcontent-%COMP%]{min-height:3rem;padding-inline:1.35rem}
1.cin-btn[_ngcontent-%COMP%]:hover{filter:brightness(1.06)}.cin-btn--ghost[_ngcontent-%COMP%]{background:transparent;border-color:var(--cin-rule);color:var(--cin-ink);font-weight:600}.cin-btn--ghost[_ngcontent-%COMP%]:hover{border-color:var(--cin-accent);background:var(--cin-accent-dim);filter:none}.cin-btn[_ngcontent-%COMP%]:focus-visible, .cin-topnav__link[_ngcontent-%COMP%]:focus-visible, .cin-wordmark[_ngcontent-%COMP%]:focus-visible, .cin-topnav__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--cin-accent);outline-offset:3px}.cin-footer[_ngcontent-%COMP%]{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem;padding:1.75rem clamp(1.15rem,4vw,2.5rem) 2.5rem;border-top:1px solid var(--cin-rule);background:color-mix(in srgb,#02040a 94%,transparent);font-family:var(--cin-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cin-muted)}.cin-footer__brand[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.cin-footer__sep[_ngcontent-%COMP%]{opacity:.5}.cin-footer__akalan[_ngcontent-%COMP%]{color:var(--cin-ink);text-decoration:none}.cin-footer__akalan[_ngcontent-%COMP%]:hover{color:var(--cin-accent)}.cin-footer__cta[_ngcontent-%COMP%]{display:inline-flex;align-items:center;min-height:2.6rem;padding:0 1.1rem;border-radius:.4rem;border:1px solid color-mix(in srgb,var(--cin-accent) 55%,var(--cin-rule));background:var(--cin-accent-dim);color:var(--cin-accent);font-family:var(--cin-sans);font-size:.82rem;font-weight:700;letter-spacing:.02em;text-transform:none;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.cin-footer__cta[_ngcontent-%COMP%]:hover{background:linear-gradient(135deg,#e8a54b,#c4842e);border-color:transparent;color:#120e08}.cin-reveal[_ngcontent-%COMP%], .cin-reveal.is-in[_ngcontent-%COMP%]{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.cin-reveal[_ngcontent-%COMP%], .cin-orbit[_ngcontent-%COMP%], .cin-orbit-scroll[_ngcontent-%COMP%], .cin-cursor__ring[_ngcontent-%COMP%], .cin-study__ring[_ngcontent-%COMP%]{transition:none!important;animation:none!important;opacity:1!important;transform:none!important}.cin-host--cursor[_nghost-%COMP%], .cin-host--cursor[_nghost-%COMP%]   *[_ngcontent-%COMP%]{cursor:auto!important}.cin-cursor[_ngcontent-%COMP%]{display:none}}@media (max-width: 699px){.cin-host[_nghost-%COMP%]{--cin-nav-h: 3.4rem}.cin-atmosphere[_ngcontent-%COMP%]{inset:0;opacity:.85}.cin-orbit-scroll[_ngcontent-%COMP%]{inset:12% 2%}.cin-hero[_ngcontent-%COMP%]{min-height:min(100dvh,44rem);padding:calc(var(--cin-nav-h) + 1.25rem) max(1rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.cin-hero__headline[_ngcontent-%COMP%]{font-size:clamp(1.85rem,8.5vw,2.6rem);line-height:1.08}.cin-hero__lede[_ngcontent-%COMP%]{font-size:.98rem}.cin-hero__actions[_ngcontent-%COMP%]{flex-direction:column;align-items:stretch}.cin-hero__actions[_ngcontent-%COMP%]   .cin-btn[_ngcontent-%COMP%], .cin-hero__actions[_ngcontent-%COMP%]   .cin-btn--ghost[_ngcontent-%COMP%]{width:100%;justify-content:center;min-height:3rem}.cin-section[_ngcontent-%COMP%], .cin-panel[_ngcontent-%COMP%], .cin-study[_ngcontent-%COMP%], .cin-footer[_ngcontent-%COMP%]{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.cin-skills[_ngcontent-%COMP%]{grid-template-columns:repeat(auto-fill,minmax(8.75rem,1fr));gap:.55rem}.cin-study__meta[_ngcontent-%COMP%]{gap:.5rem}.cin-topnav__cta[_ngcontent-%COMP%]{padding:0 .75rem;font-size:.72rem}.cin-wordmark[_ngcontent-%COMP%]{max-width:42vw}}`]})};var Gt=["nameLine"],Qt=["revisionHost"],Yt=["spreads"],Xt=["inkCanvas"],Zt=(n,t)=>t.id,Jt=(n,t)=>t.wi,Kt=(n,t)=>t.key,en=(n,t)=>t.text+t.kind,tn=(n,t)=>t.text+t.kind+"r",nn=(n,t)=>t.company+t.role,Xe=(n,t)=>t.name,on=(n,t)=>t.institution+t.degree,rn=(n,t)=>t.href;function an(n,t){if(n&1&&(P(0,"canvas",30,2),o(2,"div",31),P(3,"span",32),i()),n&2){let e=s();l(2),E("transform","translate("+e.pen().x+"px, "+e.pen().y+"px)"),T("is-hot",e.pen().hot)}}function ln(n,t){if(n&1){let e=k();o(0,"button",33),h("click",function(c){let p=v(e).$implicit,f=s();return b(f.scrollTo(p.id,c))}),o(1,"span",34),a(2),i(),o(3,"span",35),a(4),i()()}if(n&2){let e=t.$implicit,r=s();T("is-active",r.activeFolio()===e.id),l(2),d(e.folio),l(2),d(e.label)}}function cn(n,t){if(n&1&&(o(0,"span",36),a(1),i()),n&2){let e=t.$implicit;l(),d(e.ch)}}function sn(n,t){if(n&1&&(o(0,"span",11),C(1,cn,2,1,"span",36,Kt),i()),n&2){let e=t.$implicit;l(),x(e.chars)}}function pn(n,t){if(n&1&&(o(0,"p",48),a(1),i()),n&2){let e=s().$implicit;$("data-kind",e.kind),l(),d(e.text)}}function mn(n,t){if(n&1&&_(0,pn,2,2,"p",48),n&2){let e=t.$implicit;m(e.side==="left"?0:-1)}}function dn(n,t){if(n&1&&(o(0,"p",46),a(1," Filed from "),o(2,"span",49)(3,"span",50),a(4),i()()()),n&2){s(2);let e=g(0);l(4),d(e.location)}}function _n(n,t){if(n&1&&(o(0,"p",51),a(1),i()),n&2){let e=s().$implicit;$("data-kind",e.kind),l(),d(e.text)}}function fn(n,t){if(n&1&&_(0,_n,2,2,"p",51),n&2){let e=t.$implicit;m(e.side==="right"?0:-1)}}
1function gn(n,t){if(n&1&&(o(0,"section",20)(1,"header",37)(2,"span",38),a(3,"i."),i(),o(4,"h2",39),a(5,"About"),i(),o(6,"span",40),a(7,"voice first"),i()(),o(8,"div",41)(9,"aside",42),C(10,mn,1,1,null,null,en),i(),o(12,"div",43)(13,"p",44)(14,"mark",45),a(15,"I write in first person on purpose."),i(),a(16),i(),_(17,dn,5,1,"p",46),i(),o(18,"aside",47),C(19,fn,1,1,null,null,tn),i()()()),n&2){let e=s(),r=g(0);l(10),x(e.marginNotes()),l(6),O(" ",r.bio," "),l(),m(r.location?17:-1),l(2),x(e.marginNotes())}}function un(n,t){n&1&&(o(0,"time",56),a(1),i()),n&2&&(l(),d(t))}function Cn(n,t){if(n&1&&(o(0,"li",53)(1,"aside",54)(2,"span",55),a(3),i(),_(4,un,2,1,"time",56),o(5,"span",57),a(6),i()(),o(7,"div",58)(8,"p",59),a(9),i(),o(10,"h3",60),a(11),i(),o(12,"p",61)(13,"s",62),a(14,"Title as headline"),i(),o(15,"span",63),a(16,"Title as annotation"),i()()()()),n&2){let e,r=t.$implicit,c=t.$index,p=s(2);l(3),d(p.padIndex(c)),l(),m((e=p.dateRange(r.start_date,r.end_date))?4:-1,e),l(2),d(r.role),l(3),d(r.company),l(2),d(r.one_liner)}}function xn(n,t){if(n&1&&(o(0,"section",21)(1,"header",37)(2,"span",38),a(3,"ii."),i(),o(4,"h2",39),a(5,"Experience"),i(),o(6,"span",40),a(7,"marginal evidence"),i()(),o(8,"ol",52),C(9,Cn,17,5,"li",53,nn),i()()),n&2){s();let e=g(0);l(9),x(e.experience)}}function hn(n,t){if(n&1){let e=k();o(0,"div",65)(1,"p",70)(2,"span",71),a(3,"\u2190 \u2192"),i(),o(4,"span",72),a(5,"Scroll sideways to turn the page"),i(),o(6,"span",73),a(7,"Swipe to turn the page"),i()(),o(8,"div",74)(9,"button",75),h("click",function(){v(e);let c=s(2);return b(c.nudgeCraft(-1))}),a(10," Prev "),i(),o(11,"span",76),a(12),i(),o(13,"button",77),h("click",function(){v(e);let c=s(2);return b(c.nudgeCraft(1))}),a(14," Next "),i()()()}if(n&2){let e=s(2);l(9),u("disabled",e.craftAtStart()),l(3),Me(" ",e.craftIndex()+1," / ",e.projects().length," "),l(),u("disabled",e.craftAtEnd())}}function vn(n,t){if(n&1&&(o(0,"span",86),a(1),i()),n&2){let e=t.$implicit;l(),d(e)}}function bn(n,t){if(n&1&&(o(0,"p",82),C(1,vn,2,1,"span",86,L),i()),n&2){let e=s().$implicit;l(),x(e.tech_stack)}}function Pn(n,t){if(n&1&&(o(0,"a",84),a(1,"Open piece"),i()),n&2){let e=s().$implicit;u("href",e.live_url,y)}}function yn(n,t){if(n&1&&(o(0,"a",84),a(1,"Source"),i()),n&2){let e=s().$implicit;u("href",e.repo_url,y)}}function Mn(n,t){if(n&1&&(o(0,"article",67)(1,"div",78)(2,"p",79),a(3),i(),o(4,"h3",80),a(5),i(),o(6,"p",81),a(7),i(),_(8,bn,3,0,"p",82),o(9,"div",83),_(10,Pn,2,1,"a",84)(11,yn,2,1,"a",84),i()(),P(12,"div",85),i()),n&2){let e=t.$implicit,r=t.$index,c=s(2);l(3),O("Spread ",c.padIndex(r),""),l(2),d(e.name),l(2),d(e.one_liner),l(),m(e.tech_stack!=null&&e.tech_stack.length?8:-1),l(2),m(e.live_url?10:-1),l(),m(e.repo_url?11:-1)}}function wn(n,t){if(n&1){let e=k();o(0,"button",88),h("click",function(){let c=v(e).$index,p=s(3);return b(p.goCraft(c))}),i()}if(n&2){let e=t.$implicit,r=t.$index,c=s(3);T("is-active",c.craftIndex()===r),$("aria-selected",c.craftIndex()===r)("aria-label","Go to "+e.name)}}
1function kn(n,t){if(n&1&&(o(0,"div",68),C(1,wn,1,4,"button",87,Xe),i()),n&2){let e=s(2);l(),x(e.projects())}}function On(n,t){if(n&1&&(o(0,"li")(1,"span",45),a(2),i()()),n&2){let e=t.$implicit;l(2),d(e)}}function Sn(n,t){if(n&1&&(o(0,"div",69)(1,"p",46),a(2,"marginal toolkit"),i(),o(3,"ul"),C(4,On,3,1,"li",null,L),i()()),n&2){let e=s(2);l(4),x(e.skillFlat())}}function En(n,t){if(n&1){let e=k();o(0,"section",22)(1,"header",37)(2,"span",38),a(3,"iii."),i(),o(4,"h2",39),a(5,"Craft"),i(),o(6,"span",40),a(7,"page turns"),i()(),o(8,"div",64),_(9,hn,15,4,"div",65),o(10,"div",66,3),h("scroll",function(){v(e);let c=s();return b(c.onCraftScroll())}),C(12,Mn,13,6,"article",67,Xe),i(),_(14,kn,3,0,"div",68),i(),_(15,Sn,6,0,"div",69),i()}if(n&2){let e=s();l(8),T("ms-craft-pin--stack",e.projects().length<2)("ms-craft-pin--scroll",e.projects().length>=2),l(),m(e.projects().length>=2?9:-1),l(),$("tabindex",e.projects().length>=2?0:null)("aria-label",e.projects().length>=2?"Project spreads \u2014 scroll sideways":null),l(2),x(e.projects()),l(2),m(e.projects().length>=2?14:-1),l(),m(e.skillFlat().length?15:-1)}}function Tn(n,t){if(n&1&&a(0),n&2){let e=s().$implicit;O(", ",e.field,"")}}function In(n,t){if(n&1&&(o(0,"time"),a(1),i()),n&2){let e=s().$implicit;l(),d(e.end_date)}}function Fn(n,t){if(n&1&&(o(0,"li")(1,"strong"),a(2),_(3,Tn,1,1),i(),o(4,"span"),a(5),i(),_(6,In,2,1,"time"),i()),n&2){let e=t.$implicit;l(2),d(e.degree),l(),m(e.field?3:-1),l(2),d(e.institution),l(),m(e.end_date?6:-1)}}function zn(n,t){if(n&1&&(o(0,"section",23)(1,"header",37)(2,"span",38),a(3,"\u2020"),i(),o(4,"h2",39),a(5,"Formation"),i(),o(6,"span",40),a(7,"footnotes"),i()(),o(8,"ul",89),C(9,Fn,7,4,"li",null,on),i()()),n&2){s();let e=g(0);l(9),x(e.education)}}function Ln(n,t){if(n&1&&(o(0,"a",93),a(1),i()),n&2){s(2);let e=g(0);u("href","mailto:"+e.email,y),l(),d(e.email)}}function jn(n,t){if(n&1&&(o(0,"a",94),a(1),i()),n&2){s(2);let e=g(0);u("href","tel:"+e.phone,y),l(),d(e.phone)}}function $n(n,t){if(n&1&&(o(0,"li")(1,"a",84),a(2),i()()),n&2){let e=t.$implicit;l(),u("href",e.href,y),l(),d(e.label)}}function Vn(n,t){if(n&1&&(o(0,"ul",96),C(1,$n,3,2,"li",null,rn),i()),n&2){let e=s(2);l(),x(e.socialEntries())}}function Rn(n,t){if(n&1){let e=k();o(0,"section",24)(1,"header",37)(2,"span",38),a(3,"iv."),i(),o(4,"h2",39),a(5,"Contact"),i(),o(6,"span",40),a(7,"leave a note"),i()(),o(8,"div",90)(9,"p",91),a(10," If a line here resonates, write. Treat this like a notebook left open, not a form. "),i(),o(11,"div",92),_(12,Ln,2,2,"a",93)(13,jn,2,2,"a",94),o(14,"button",95),h("click",function(){v(e);let c=s();return b(c.copyLink())}),a(15),i()(),_(16,Vn,3,0,"ul",96),i()()}if(n&2){let e=s(),r=g(0);l(12),m(r.email?12:-1),l(),m(r.phone?13:-1),l(2),O(" ",e.linkCopied()?"Link copied":"Copy notebook link"," "),l(),m(e.socialEntries().length?16:-1)}}var oe=class n{portfolio;nameLine;revisionHost;spreads;inkCanvas;platformId=z(B);ctx=null;trailRaf=0;trailPts=[];sectionSpyRaf=0;onSectionScroll=null;sectionObserver=null;craftScrollRaf=0;penEnabled=M(!1);pen=M({x:-80,y:-80,hot:!1});linkCopied=M(!1);activeFolio=M("top");craftIndex=M(0);craftAtStart=M(!0);craftAtEnd=M(!0);nameWords=w(()=>(this.portfolio?.displayName||"Your Name").trim().split(/\s+/).filter(Boolean).map((e,r)=>({wi:r,chars:[...e].map((c,p)=>({ch:c,key:`${r}-${p}`}))})));revision=w(()=>{let t=(this.portfolio?.bio||"").trim(),e=t.split(/(?<=[.!?])\s+/)[0]||t.slice(0,140),r=e.replace(/\bI am\b/i,"I am basically").replace(/\bI work\b/i,"I try to work").replace(/\bI build\b/i,"I kind of build");return{draft:r===e?`${e} (still sharpening)`:r,refined:e}});marginNotes=w(()=>{let t=this.portfolio;if(!t)return[];let e=Object.values(t.skillsGrouped??{}).flat().filter(Boolean).slice(0,5).map((c,p)=>({side:p%2===0?"left":"right",text:c,kind:"skill"}));return[...(t.experience??[]).slice(0,4).map((c,p)=>({side:p%2===0?"right":"left",text:c.role||c.company,kind:"mile"})),...e].slice(0,8)});navItems=w(()=>{let t=[{id:"top",folio:"\xB7",label:"Title"}],e=[{sid:"about",id:"about",folio:"i.",label:"About"},{sid:"experience",id:"experience",folio:"ii.",label:"Experience"},{sid:"projects",id:"craft",folio:"iii.",label:"Craft"},{sid:"contact",id:"contact",folio:"iv.",label:"Contact"}];
1for(let r of e)this.sectionVisible(r.sid)&&t.push({id:r.id,folio:r.folio,label:r.label});return t});projects=w(()=>this.portfolio?.projects??[]);skillFlat=w(()=>Object.values(this.portfolio?.skillsGrouped??{}).flat().filter(Boolean));ngAfterViewInit(){if(!F(this.platformId))return;j.registerPlugin(Qe);let t=typeof window.matchMedia=="function"&&window.matchMedia("(hover: hover) and (pointer: fine)").matches;this.penEnabled.set(t),queueMicrotask(()=>{this.bindMotion(),this.bindSectionSpy(),this.syncCraftScroll(),t&&this.loopTrail()})}ngOnDestroy(){this.ctx?.revert(),this.ctx=null,this.onSectionScroll&&(window.removeEventListener("scroll",this.onSectionScroll),this.onSectionScroll=null),this.sectionObserver?.disconnect(),this.sectionObserver=null,this.sectionSpyRaf&&cancelAnimationFrame(this.sectionSpyRaf),this.sectionSpyRaf=0,this.craftScrollRaf&&cancelAnimationFrame(this.craftScrollRaf),this.craftScrollRaf=0,this.trailRaf&&cancelAnimationFrame(this.trailRaf)}onMove(t){if(!this.penEnabled())return;let e=t.target,r=!!(e instanceof Element&&e.closest("a, button, .ms-note, .ms-hl"));this.pen.set({x:t.clientX,y:t.clientY,hot:r}),this.trailPts.push({x:t.clientX,y:t.clientY,a:1}),this.trailPts.length>28&&this.trailPts.shift()}sectionVisible(t){let e=this.portfolio;if(!e)return!1;let r=(e.sections??[]).find(c=>c.id===t);if(r&&r.visible===!1)return!1;switch(t){case"about":return!!e.bio?.trim();case"experience":return(e.experience?.length??0)>0;case"projects":return(e.projects?.length??0)>0;case"skills":return this.skillFlat().length>0;case"education":return(e.education?.length??0)>0;case"contact":return!!(e.email||e.phone||e.location||this.socialEntries().length);default:return!0}}socialEntries(){let t=this.portfolio?.socialLinks??{},e=[];return t.linkedin&&e.push({label:"LinkedIn",href:t.linkedin}),t.github&&e.push({label:"GitHub",href:t.github}),t.twitter&&e.push({label:"Twitter",href:t.twitter}),t.website&&e.push({label:"Web",href:t.website}),e}dateRange(t,e){let r=(t??"").trim(),c=(e??"").trim()||"Present";return!r&&!e?"":r?`${r} - ${c}`:c}padIndex(t){let e=t+1;return e<10?`0${e}`:String(e)}scrollTo(t,e){if(e?.preventDefault(),e?.stopPropagation(),!F(this.platformId))return;(document.getElementById(t==="top"?"ms-top":t)??document.querySelector(`#${t==="top"?"ms-top":t}`))?.scrollIntoView({behavior:"smooth",block:"start"})}onCraftScroll(){this.craftScrollRaf||(this.craftScrollRaf=requestAnimationFrame(()=>{this.craftScrollRaf=0,this.syncCraftScroll()}))}nudgeCraft(t){let e=this.spreads?.nativeElement;if(!e)return;let r=e.querySelector(".ms-spread"),c=r?r.offsetWidth+20:Math.max(280,e.clientWidth*.85);e.scrollBy({left:t*c,behavior:"smooth"})}goCraft(t){let e=this.spreads?.nativeElement;if(!e)return;e.querySelectorAll(".ms-spread").item(t)?.scrollIntoView({behavior:"smooth",inline:"start",block:"nearest"})}syncCraftScroll(){let t=this.spreads?.nativeElement;if(!t||this.projects().length<2){this.craftIndex.set(0),this.craftAtStart.set(!0),this.craftAtEnd.set(!0);return}let e=Math.max(0,t.scrollWidth-t.clientWidth),r=t.scrollLeft;this.craftAtStart.set(r<=8),this.craftAtEnd.set(r>=e-8);let c=Array.from(t.querySelectorAll(".ms-spread"));if(!c.length)return;let p=0,f=Number.POSITIVE_INFINITY,S=r+t.clientWidth*.2;c.forEach((I,Z)=>{let Y=Math.abs(I.offsetLeft-S);Y<f&&(f=Y,p=Z)}),this.craftIndex.set(p)}copyLink(){return D(this,null,function*(){if(F(this.platformId))try{yield navigator.clipboard.writeText(`${window.location.origin}/p/${this.portfolio.slug}`),this.linkCopied.set(!0),window.setTimeout(()=>this.linkCopied.set(!1),2e3)}catch{this.linkCopied.set(!1)}})}bindMotion(){typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches||(this.ctx=j.context(()=>
1{let e=this.nameLine?.nativeElement.querySelectorAll(".ms-char");e?.length&&(j.fromTo(e,{y:18,opacity:.35,letterSpacing:"0.18em"},{y:0,opacity:1,letterSpacing:"0.02em",ease:"none",stagger:{each:.012,from:"center"},scrollTrigger:{trigger:"#ms-top",start:"top top",end:"bottom top",scrub:.6}}),j.to(e,{rotationZ:f=>f%2===0?-2.5:2.2,y:f=>f%3===0?-6:4,ease:"none",scrollTrigger:{trigger:"#ms-top",start:"top top",end:"+=70%",scrub:.8}}));let r=this.revisionHost?.nativeElement.querySelector(".ms-rev__draft"),c=this.revisionHost?.nativeElement.querySelector(".ms-rev__refined");r&&c&&j.timeline({scrollTrigger:{trigger:this.revisionHost.nativeElement,start:"top 75%",end:"bottom 35%",scrub:.7}}).fromTo(r,{opacity:1},{opacity:.25,ease:"none"},0).fromTo(r,{textDecorationThickness:"1px"},{textDecorationThickness:"2.5px",ease:"none"},0).fromTo(c,{opacity:0,y:10},{opacity:1,y:0,ease:"none"},.25),j.utils.toArray(".ms-note").forEach((f,S)=>{j.fromTo(f,{opacity:0,x:f.classList.contains("ms-note--right")?18:-18,rotate:S%2?2:-2},{opacity:1,x:0,rotate:S%2?1.2:-1.1,ease:"none",scrollTrigger:{trigger:f,start:"top 88%",end:"top 55%",scrub:.5}})}),this.spreads?.nativeElement&&this.projects().length>0&&j.utils.toArray(".ms-spread").forEach(f=>{j.fromTo(f,{opacity:.75,y:14},{opacity:1,y:0,ease:"power2.out",scrollTrigger:{trigger:f,start:"top 90%",end:"top 60%",toggleActions:"play none none reverse"}})}),j.to(".ms-paper-grain",{backgroundPosition:"80px 50px",ease:"none",scrollTrigger:{trigger:document.body,start:"top top",end:"bottom bottom",scrub:1.2}})}))}bindSectionSpy(){let e=this.navItems().map(c=>c.id==="top"?"ms-top":c.id).map(c=>document.getElementById(c)).filter(Boolean);if(!e.length)return;let r=()=>{this.sectionSpyRaf=0;let c=window.innerHeight*.28,p=e[0]?.id??"ms-top";for(let f of e)f.getBoundingClientRect().top<=c&&(p=f.id);this.activeFolio.set(p==="ms-top"?"top":p)};this.onSectionScroll=()=>{this.sectionSpyRaf||(this.sectionSpyRaf=requestAnimationFrame(r))},window.addEventListener("scroll",this.onSectionScroll,{passive:!0}),this.sectionObserver?.disconnect(),this.sectionObserver=new IntersectionObserver(c=>{let p=c.filter(S=>S.isIntersecting&&S.target instanceof HTMLElement).sort((S,I)=>I.intersectionRatio-S.intersectionRatio)[0];if(!p?.target||!(p.target instanceof HTMLElement))return;let f=p.target.id==="ms-top"?"top":p.target.id;this.activeFolio.set(f)},{rootMargin:"-35% 0px -45% 0px",threshold:[.08,.3,.6]}),e.forEach(c=>this.sectionObserver.observe(c)),r()}loopTrail=()=>{this.trailRaf=requestAnimationFrame(this.loopTrail);let t=this.inkCanvas?.nativeElement;if(!t)return;let e=Math.min(window.devicePixelRatio||1,2);t.width!==Math.floor(window.innerWidth*e)&&(t.width=Math.floor(window.innerWidth*e),t.height=Math.floor(window.innerHeight*e),t.style.width=`${window.innerWidth}px`,t.style.height=`${window.innerHeight}px`);let r=t.getContext("2d");r&&(r.setTransform(e,0,0,e,0,0),r.clearRect(0,0,window.innerWidth,window.innerHeight),r.strokeStyle="rgba(107, 29, 42, 0.28)",r.lineWidth=this.pen().hot?2.2:1.1,r.lineCap="round",r.beginPath(),this.trailPts.forEach((c,p)=>{c.a*=.92,p===0?r.moveTo(c.x,c.y):r.lineTo(c.x,c.y)}),r.stroke(),this.trailPts=this.trailPts.filter(c=>c.a>.05))};static \u0275fac=function(e){return new(e||n)};static \u0275cmp=H({type:n,selectors:[["app-manuscript-portfolio"]],viewQuery:function(e,r){if(e&1&&(V(Gt,5),V(Qt,5),V(Yt,5),V(Xt,5)),e&2){let c;R(c=A())&&(r.nameLine=c.first),R(c=A())&&(r.revisionHost=c.first),R(c=A())&&(r.spreads=c.first),R(c=A())&&(r.inkCanvas=c.first)}},hostAttrs:[1,"ms-host"],hostVars:2,hostBindings:function(e,r){e&1&&h("mousemove",function(p){return r.onMove(p)},!1,ye),e&2&&T("ms-host--pen",r.penEnabled())},inputs:{portfolio:"portfolio"},decls:47,vars:12,consts:[["nameLine",""],["revisionHost",""],["inkCanvas",""],["spreads",""],["aria-hidden","true",1,"ms-paper-grain"],["aria-label","Folio",1,"ms-folio"],["type","button",1,"ms-folio__btn",3,"is-active"],["itemscope","","itemtype","https://schema.org/Person",1,"ms"],["id","ms-top",1,"ms-hero"],[1,"ms-running"],["itemprop","name",1,"ms-name"],[1,"ms-word"],["aria-hidden","true",1,"ms-caret"],[1,"ms-hero__philosophy"],[1,"ms-hero__tag"],[1,"ms-rev"],[1,"ms-rev__draft"],["itemprop","jobTitle",1,"ms-rev__refined"],[1,"ms-rev__meta"],[1,"ms-hero__headline"],["id","about",1,"ms-sheet"],["id","experience",1,"ms-sheet"],["id","craft",1,"ms-sheet","ms-sheet--craft"],["id","education",1,"ms-sheet"],["id","contact",1,"ms-sheet"],[1,"ms-footer"],[1,"ms-footer__brand"],[1,"ms-footer__sep"],["routerLink","/"],["routerLink","/dashboard/portfolio",1,"ms-footer__cta"],["aria-hidden","true",1,"ms-ink"],["aria-hidden","true",1,"ms-pen"],[1,"ms-pen__nib"],["type","button",1,"ms-folio__btn",3,"click"],[1,"ms-folio__num"],[1,"ms-folio__label"],[1,"ms-ch
1ar"],[1,"ms-sheet__head"],[1,"ms-sheet__folio"],[1,"ms-sheet__title"],[1,"ms-sheet__run"],[1,"ms-cols"],[1,"ms-gutter","ms-gutter--left"],[1,"ms-body"],[1,"ms-prose"],[1,"ms-hl"],[1,"ms-meta"],[1,"ms-gutter","ms-gutter--right"],[1,"ms-note","ms-note--left"],["itemprop","address","itemscope","","itemtype","https://schema.org/PostalAddress"],["itemprop","addressLocality"],[1,"ms-note","ms-note--right"],[1,"ms-entries"],[1,"ms-entry"],[1,"ms-entry__margin"],[1,"ms-entry__idx"],[1,"ms-entry__when"],[1,"ms-entry__role-note"],[1,"ms-entry__main"],["itemprop","worksFor",1,"ms-entry__org"],["itemprop","jobTitle",1,"ms-entry__title"],[1,"ms-entry__foot"],[1,"ms-strike"],[1,"ms-ink"],[1,"ms-craft-pin"],[1,"ms-craft-chrome"],[1,"ms-spreads",3,"scroll"],[1,"ms-spread"],["role","tablist","aria-label","Projects",1,"ms-craft-dots"],[1,"ms-toolkit"],[1,"ms-craft-hint"],["aria-hidden","true",1,"ms-craft-hint__glyph"],[1,"ms-craft-hint__desk"],[1,"ms-craft-hint__touch"],[1,"ms-craft-controls"],["type","button","aria-label","Previous project",1,"ms-craft-btn",3,"click","disabled"],["aria-live","polite",1,"ms-craft-progress"],["type","button","aria-label","Next project",1,"ms-craft-btn",3,"click","disabled"],[1,"ms-spread__page"],[1,"ms-spread__num"],[1,"ms-spread__name"],[1,"ms-spread__copy"],[1,"ms-spread__tools"],[1,"ms-spread__links"],["target","_blank","rel","noopener noreferrer",3,"href"],["aria-hidden","true",1,"ms-spread__bleed"],[1,"ms-note","ms-note--inline"],["type","button","role","tab",1,"ms-craft-dot",3,"is-active"],["type","button","role","tab",1,"ms-craft-dot",3,"click"],[1,"ms-edu"],[1,"ms-contact"],[1,"ms-prose","ms-prose--short"],[1,"ms-contact__actions"],["itemprop","email",1,"ms-btn",3,"href"],[1,"ms-link",3,"href"],["type","button",1,"ms-btn","ms-btn--ghost",3,"click"],[1,"ms-social"]],template:function(e,r){if(e&1&&(q(0),_(1,an,4,4),P(2,"div",4),o(3,"nav",5),C(4,ln,5,4,"button",6,Zt),i(),o(6,"article",7)(7,"header",8)(8,"p",9),a(9),i(),o(10,"h1",10,0),C(12,sn,3,0,"span",11,Jt),o(14,"span",12),a(15,"\u2303"),i()(),o(16,"p",13)(17,"span",14),a(18,"margin note"),i(),a(19," Lead with how I think. Titles are evidence in the gutter, not the story. "),i(),o(20,"div",15,1)(22,"p",16),a(23),i(),o(24,"p",17),a(25),i(),o(26,"p",18),a(27,"track changes / in progress"),i()(),o(28,"p",19),a(29),i()(),_(30,gn,21,2,"section",20)(31,xn,11,0,"section",21)(32,En,16,9,"section",22)(33,zn,11,0,"section",23)(34,Rn,17,4,"section",24),o(35,"footer",25)(36,"div",26)(37,"span"),a(38),i(),o(39,"span",27),a(40,"\xB7"),i(),o(41,"span"),a(42,"Notebook on "),o(43,"a",28),a(44,"Akalan"),i()()(),o(45,"a",29),a(46,"Create your portfolio"),i()()()),e&2){let c=U(r.portfolio);l(),m(r.penEnabled()?1:-1),l(3),x(r.navItems()),l(5),O("Working notes / ",c.slug,""),l(3),x(r.nameWords()),l(11),d(r.revision().draft),l(2),d(r.revision().refined),l(4),d(c.headline),l(),m(r.sectionVisible("about")?30:-1),l(),m(r.sectionVisible("experience")?31:-1),l(),m(r.sectionVisible("projects")?32:-1),l(),m(r.sectionVisible("education")&&c.education.length?33:-1),l(),m(r.sectionVisible("contact")?34:-1),l(4),d(c.displayName)}},dependencies:[W,G],styles:[`.ms-host[_nghost-%COMP%]{--ms-paper: #f3eadc;--ms-paper-deep: #e8dcc8;--ms-ink: #1c1915;--ms-muted: #6f6558;--ms-accent: #6b1d2a;--ms-accent-soft: rgba(107, 29, 42, .12);--ms-rule: rgba(28, 25, 21, .14);--ms-serif: "Fraunces", "Source Serif 4", Georgia, "Times New Roman", serif;--ms-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--ms-rail: 4.75rem;display:block;min-height:100vh;color:var(--ms-ink);background:radial-gradient(120% 80% at 10% 0%,#f7f0e4,transparent 50%),radial-gradient(90% 60% at 100% 20%,rgba(107,29,42,.05),transparent 45%),linear-gradient(180deg,#f6efe3 0%,var(--ms-paper) 45%,#ebe0ce 100%);font-family:var(--ms-serif)}.ms-host--pen[_nghost-%COMP%], .ms-host--pen[_nghost-%COMP%]   *[_ngcontent-%COMP%]{cursor:none!important}.ms-paper-grain[_ngcontent-%COMP%]{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.28;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");mix-blend-mode:multiply}.ms-ink[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:90;pointer-events:none}.ms-pen[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:95;width:0;height:0;pointer-events:none}.ms-pen__nib[_ngcontent-%COMP%]{position:absolute;
1left:-2px;top:-2px;width:10px;height:10px;border-radius:40% 40% 40% 10%;background:var(--ms-accent);transform:rotate(-35deg);box-shadow:1px 1px #1c191533;transition:transform .12s ease}.ms-pen.is-hot[_ngcontent-%COMP%]   .ms-pen__nib[_ngcontent-%COMP%]{transform:rotate(-35deg) scale(1.35)}.ms-folio[_ngcontent-%COMP%]{display:none;position:fixed;top:50%;left:max(.4rem,env(safe-area-inset-left));transform:translateY(-50%);z-index:40;flex-direction:column;gap:.2rem;pointer-events:auto}@media (min-width: 900px){.ms-folio[_ngcontent-%COMP%]{display:flex}}.ms-folio__btn[_ngcontent-%COMP%]{appearance:none;border:none;background:transparent;text-align:left;display:grid;grid-template-columns:1.6rem auto;gap:.4rem;align-items:baseline;min-height:2.4rem;padding:.3rem .4rem;font-family:var(--ms-mono);color:var(--ms-muted);cursor:pointer;pointer-events:auto;position:relative;z-index:1}.ms-folio__num[_ngcontent-%COMP%]{font-size:.68rem;letter-spacing:.04em}.ms-folio__label[_ngcontent-%COMP%]{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase}.ms-folio__btn.is-active[_ngcontent-%COMP%], .ms-folio__btn[_ngcontent-%COMP%]:hover{color:var(--ms-accent)}.ms[_ngcontent-%COMP%]{position:relative;z-index:1;max-width:68rem;margin:0 auto;padding:0 clamp(1rem,3vw,1.75rem) 0}@media (min-width: 900px){.ms[_ngcontent-%COMP%]{padding-left:calc(var(--ms-rail) + .5rem)}}.ms-hero[_ngcontent-%COMP%]{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:5rem 0 4rem;border-bottom:1px solid var(--ms-rule)}.ms-running[_ngcontent-%COMP%]{margin:0 0 1.5rem;font-family:var(--ms-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ms-muted)}.ms-name[_ngcontent-%COMP%]{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.18em 0;font-size:clamp(2.6rem,9vw,5.6rem);font-weight:550;line-height:1.02;letter-spacing:.02em;color:var(--ms-ink)}.ms-word[_ngcontent-%COMP%]{display:inline-flex;white-space:nowrap}.ms-char[_ngcontent-%COMP%]{display:inline-block;will-change:transform,letter-spacing}.ms-caret[_ngcontent-%COMP%]{margin-left:.15em;color:var(--ms-accent);font-size:.45em;vertical-align:super;font-family:var(--ms-mono)}.ms-hero__philosophy[_ngcontent-%COMP%]{margin:1.75rem 0 0;max-width:28rem;font-size:1.05rem;line-height:1.55;color:var(--ms-muted);font-style:italic}.ms-hero__tag[_ngcontent-%COMP%]{display:inline-block;margin-right:.5rem;font-family:var(--ms-mono);font-size:.62rem;font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--ms-accent)}.ms-rev[_ngcontent-%COMP%]{position:relative;display:grid;margin-top:2.25rem;max-width:38rem;min-height:6rem}.ms-rev__draft[_ngcontent-%COMP%], .ms-rev__refined[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.15rem,2.4vw,1.45rem);line-height:1.55}.ms-rev__draft[_ngcontent-%COMP%]{grid-area:1 / 1;color:var(--ms-muted);text-decoration:line-through;text-decoration-color:var(--ms-accent)}.ms-rev__refined[_ngcontent-%COMP%]{grid-area:1 / 1;color:var(--ms-ink);opacity:0}.ms-rev__meta[_ngcontent-%COMP%]{margin:1.25rem 0 0;font-family:var(--ms-mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ms-accent)}.ms-hero__headline[_ngcontent-%COMP%]{margin:1.75rem 0 0;font-family:var(--ms-mono);font-size:.78rem;letter-spacing:.08em;color:var(--ms-muted);max-width:36rem}.ms-sheet[_ngcontent-%COMP%]{position:relative;padding:clamp(3.5rem,9vh,5.5rem) 0;border-bottom:1px solid var(--ms-rule)}.ms-sheet__head[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem 1.25rem;margin-bottom:2rem}.ms-sheet__folio[_ngcontent-%COMP%]{font-family:var(--ms-mono);font-size:.85rem;color:var(--ms-accent)}.ms-sheet__title[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:550;letter-spacing:-.02em}.ms-sheet__run[_ngcontent-%COMP%]{margin-left:auto;font-family:var(--ms-mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ms-muted)}.ms-cols[_ngcontent-%COMP%]{display:grid;gap:1.25rem}@media (min-width: 960px){.ms-cols[_ngcontent-%COMP%]{grid-template-columns:minmax(7rem,.7fr) minmax(0,1.6fr) minmax(7rem,.7fr);gap:1.5rem}}.ms-gutter[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.ms-note[_ngcontent-%COMP%]{margin:0;font-family:Segoe Script,Apple Chancery,Comic Sans MS,cursive;font-size:.92rem;line-height:1.35;color:var(--ms-accent);transform-origin:left center}.ms-note--right[_ngcontent-%COMP%]{text-align:right;transform-origin:right center}.ms-note--inline[_ngcontent-%COMP%]{display:inline-block;margin:0 .45rem .35rem 0;padding:.1rem .35rem;border-bottom:1px solid color-mix(in srgb,var(--ms-accent) 45%,transparent);font-size:.85rem}.ms-note[data-kind=mile][_ngcontent-%COMP%]{font-size:.82rem;opacity:.9}.ms-prose[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.05rem,2vw,1.22rem);line-height:1.75;color:var(--ms-ink)}.ms-prose--short[_ngcontent-%COMP%]{max-width:32rem}.ms-hl[_ngcontent-%COMP%]{background:linear-gradient(transparent 58%,color-mix(in srgb,var(--ms-accent) 28%,transparent) 58%);color:inherit;padding:0 .1em}.ms-meta[_ngcontent-%COMP%]{margin:1.5rem 0 0;font-family:var(--ms-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ms-muted)}.ms-entries[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2rem}.ms-entry[_ngcontent-%COMP%]{display:grid;gap:1rem;padding-bottom:1.5rem;border-bottom:1px dashed var(--ms-rule)}@media (min-width: 800px){.ms-entry[_ngcontent-%COMP%]{grid-template-columns:minmax(8rem,.55fr) minmax(0,1.45fr);gap:1.75rem}}.ms-entry__margin[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem;font-family:var(--ms-mono);color:var(--ms-muted)}.ms-entry__idx[_ngcontent-%COMP%]{font-size:.7rem;letter-spacing:.12em;color:var(--ms-accent)}.ms-entry__when[_ngcontent-%COMP%]{font-size:.68rem;letter-spacing:.04em}.ms-entry__role-note[_ngcontent-%COMP%]{margin-top:.35rem;font-family:Segoe Script,Apple Chancery,cursive;font-size:.9rem;color:var(--ms-accent);line-height:1.3}.ms-entry__org[_ngcontent-%COMP%]{margin:0;font-family:var(--ms-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ms-muted)}.ms-entry__title[_ngcontent-%COMP%]{margin:.45rem 0 0;font-size:clamp(1.2rem,2.4vw,1.55rem);font-weight:550;line-height:1.35;letter-spacing:-.015em}.ms-entry__foot[_ngcontent-%COMP%]{margin:.85rem 0 0;font-size:.9rem;display:flex;flex-wrap:wrap;gap:.65rem;align-items:baseline}.ms-strike[_ngcontent-%COMP%]{color:var(--ms-muted);text-decoration-color:var(--ms-accent)}.ms-ink[_ngcontent-%COMP%]{color:var(--ms-accent);font-family:Segoe Script,Apple Chancery,cursive}.ms-craft-pin[_ngcontent-%COMP%]{position:relative;margin:0 -clamp(1rem,3vw,1.75rem);padding:0 clamp(1rem,3vw,1.75rem) 1rem}.ms-craft-pin--scroll[_ngcontent-%COMP%]{--ms-craft-fade: color-mix(in srgb, var(--ms-paper, #f3eee4) 88%, transparent)}.ms-craft-chrome[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.25rem;margin-bottom:.85rem}.ms-craft-hint[_ngcontent-%COMP%]{margin:0;display:inline-flex;align-items:center;gap:.55rem;font-family:var(--ms-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ms-accent)}.ms-craft-hint__touch[_ngcontent-%COMP%]{display:none}.ms-craft-hint__glyph[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_ms-craft-nudge 1.6s ease-in-out infinite;letter-spacing:.08em}@media (max-width: 799px){.ms-craft-hint__desk[_ngcontent-%COMP%]{display:none}.ms-craft-hint__touch[_ngcontent-%COMP%]{display:inline}}@keyframes _ngcontent-%COMP%_ms-craft-nudge{0%,to{transform:translate(0);opacity:.7}50%{transform:translate(4px);opacity:1}}
1.ms-craft-controls[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.65rem}.ms-craft-btn[_ngcontent-%COMP%]{min-height:40px;padding:.35rem .85rem;border:1px solid var(--ms-rule);border-radius:2px;background:color-mix(in srgb,var(--ms-paper-deep, #ebe4d6) 70%,transparent);color:var(--ms-ink);font-family:var(--ms-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.ms-craft-btn[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--ms-accent);color:var(--ms-accent)}.ms-craft-btn[_ngcontent-%COMP%]:disabled{opacity:.35;cursor:not-allowed}.ms-craft-progress[_ngcontent-%COMP%]{font-family:var(--ms-mono);font-size:.7rem;letter-spacing:.08em;color:var(--ms-muted);min-width:3.5rem;text-align:center}.ms-spreads[_ngcontent-%COMP%]{display:flex;gap:1.25rem;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding-bottom:.35rem;mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 28px),transparent 100%)}.ms-craft-pin--stack[_ngcontent-%COMP%]   .ms-spreads[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,28rem),1fr));width:100%;max-width:100%;gap:1rem;overflow:visible;scroll-snap-type:none;mask-image:none;transform:none!important}.ms-craft-pin--stack[_ngcontent-%COMP%]   .ms-spread[_ngcontent-%COMP%]{width:100%;min-height:0;scroll-snap-align:none}.ms-spread[_ngcontent-%COMP%]{width:min(78vw,34rem);flex:0 0 auto;scroll-snap-align:start;display:grid;grid-template-columns:1fr .18fr;min-height:min(70vh,28rem);border:1px solid var(--ms-rule);background:linear-gradient(155deg,#f7f1e6,var(--ms-paper-deep));box-shadow:8px 10px #1c19150a}.ms-craft-dots[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:.45rem;margin-top:.9rem}.ms-craft-dot[_ngcontent-%COMP%]{width:.45rem;height:.45rem;padding:0;border:none;border-radius:999px;background:color-mix(in srgb,var(--ms-ink) 22%,transparent);cursor:pointer;min-height:0}.ms-craft-dot.is-active[_ngcontent-%COMP%]{background:var(--ms-accent);width:1.1rem}.ms-spread__page[_ngcontent-%COMP%]{padding:clamp(1.35rem,3vw,2rem);display:flex;flex-direction:column;justify-content:center}.ms-spread__bleed[_ngcontent-%COMP%]{background:linear-gradient(180deg,transparent,rgba(107,29,42,.08)),repeating-linear-gradient(90deg,transparent,transparent 6px,rgba(28,25,21,.04) 6px,rgba(28,25,21,.04) 7px);border-left:1px solid var(--ms-rule)}.ms-spread__num[_ngcontent-%COMP%]{margin:0 0 .75rem;font-family:var(--ms-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ms-accent)}.ms-spread__name[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.45rem,3vw,2rem);font-weight:550;letter-spacing:-.02em;line-height:1.15}.ms-spread__copy[_ngcontent-%COMP%]{margin:1rem 0 0;font-size:1.05rem;line-height:1.6;color:color-mix(in srgb,var(--ms-ink) 88%,var(--ms-muted))}.ms-spread__tools[_ngcontent-%COMP%]{margin:1.15rem 0 0}.ms-spread__links[_ngcontent-%COMP%]{display:flex;gap:1.1rem;margin-top:1.35rem}.ms-spread__links[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:var(--ms-accent);font-size:.9rem;font-weight:600;text-decoration:underline;text-underline-offset:.18em}.ms-toolkit[_ngcontent-%COMP%]{margin-top:2.5rem}.ms-toolkit[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.55rem 1rem}.ms-toolkit[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{font-size:.95rem}.ms-edu[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.ms-edu[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{display:grid;gap:.2rem;padding:.85rem 0;border-bottom:1px solid var(--ms-rule)}.ms-edu[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:550}.ms-edu[_ngcontent-%COMP%]   span[_ngcontent-%COMP%], .ms-edu[_ngcontent-%COMP%]   time[_ngcontent-%COMP%]{font-family:var(--ms-mono);font-size:.75rem;color:var(--ms-muted);letter-spacing:.04em}.ms-contact__actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;align-items:center}.ms-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;min-height:2.7rem;padding:0 1.1rem;border-radius:.25rem;border:1px solid transparent;background:var(--ms-accent);color:#f7f0e6;font-family:var(--ms-serif);font-size:.95rem;font-weight:600;text-decoration:none;cursor:pointer}.ms-btn--ghost[_ngcontent-%COMP%]{background:transparent;border-color:var(--ms-rule);color:var(--ms-ink)}.ms-btn--ghost[_ngcontent-%COMP%]:hover{border-color:var(--ms-accent);color:var(--ms-accent)}.ms-link[_ngcontent-%COMP%]{color:var(--ms-muted);text-decoration:none}.ms-link[_ngcontent-%COMP%]:hover{color:var(--ms-accent)}.ms-social[_ngcontent-%COMP%]{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;gap:1.1rem;flex-wrap:wrap}.ms-social[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{font-family:var(--ms-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ms-muted);text-decoration:none}.ms-social[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:var(--ms-accent)}.ms-footer[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center;padding:1.75rem 0 2.75rem;font-family:var(--ms-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ms-muted)}.ms-footer__brand[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.45rem}.ms-footer[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:var(--ms-ink);text-decoration:none}.ms-footer[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:var(--ms-accent)}.ms-footer__cta[_ngcontent-%COMP%]{display:inline-flex;align-items:center;min-height:2.5rem;padding:0 1rem;border:1px solid color-mix(in srgb,var(--ms-accent) 50%,var(--ms-rule));border-radius:.25rem;background:var(--ms-accent-soft);color:var(--ms-accent)!important;font-family:var(--ms-serif);font-size:.88rem;font-weight:650;letter-spacing:0;text-transform:none}.ms-footer__cta[_ngcontent-%COMP%]:hover{background:var(--ms-accent);color:#f7f0e6!important}.ms-folio__btn[_ngcontent-%COMP%]:focus-visible, .ms-btn[_ngcontent-%COMP%]:focus-visible, .ms-footer__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--ms-accent);outline-offset:3px}@media (prefers-reduced-motion: reduce){.ms-host--pen[_nghost-%COMP%], .ms-host--pen[_nghost-%COMP%]   *[_ngcontent-%COMP%]{cursor:auto!important}.ms-pen[_ngcontent-%COMP%], .ms-ink[_ngcontent-%COMP%]{display:none}.ms-rev__refined[_ngcontent-%COMP%]{opacity:1}.ms-rev__draft[_ngcontent-%COMP%]{opacity:.35}}@media (max-width: 799px){.ms-host[_nghost-%COMP%]{overflow-x:clip}.ms-craft-pin[_ngcontent-%COMP%]{margin:0;padding:0 0 1rem}.ms-craft-chrome[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}.ms-craft-hint__glyph[_ngcontent-%COMP%]{animation:none}.ms-spreads[_ngcontent-%COMP%]{mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 20px),transparent 100%)}.ms-spread[_ngcontent-%COMP%]{width:min(88vw,28rem);min-height:0;grid-template-columns:1fr}.ms-spread__bleed[_ngcontent-%COMP%]{display:none}.ms-spread__page[_ngcontent-%COMP%]{padding:1.25rem 1.1rem}.ms-spread__copy[_ngcontent-%COMP%]{font-size:.98rem}.ms-folio[_ngcontent-%COMP%]{padding-left:max(.85rem,env(safe-area-inset-left));padding-right:max(.85rem,env(safe-area-inset-right))}}`]})};var Je=(n,t)=>t.href,An=(n,t)=>t.label,Bn=(n,t)=>t.company+t.role,Hn=(n,t)=>t.name,Nn=(n,t)=>t.category,Dn=(n,t)=>t.institution+t.degree,qn=(n,t)=>t.id;function Un(n,t){n&1&&(o(0,"div",0),P(1,"div",2)(2,"div",3)(3,"div",4)(4,"div",5),i())}function Wn(n,t){n&1&&(o(0,"div",1)(1,"p",6),a(2,"Portfolio"),i(),o(3,"h1"),a(4,"This page isn\u2019t available"),i(),o(5,"p"),a(6,"It may be unpublished, or the link is incorrect."),i(),o(7,"a",7),a(8,"Explore Akalan"),i()())}function Gn(n,t){if(n&1&&P(0,"app-cinema-portfolio",8),n&2){s();let e=g(0);u("portfolio",e)}}function Qn(n,t){if(n&1&&P(0,"app-manuscript-portfolio",8),n&2){s();let e=g(0);u("portfolio",e)}}function Yn(n,t){if(n&1){let e=k();o(0,"button",49),h("click",function(c){v(e);let p=s().$implicit,f=s(4);return b(f.scrollToSection(p,c))}),a(1),i()}if(n&2){let e=s().$implicit,r=s(4);l(),O(" ",r.sectionLabel(e)," ")}}function Xn(n,t){if(n&1&&_(0,Yn,2,1,"button",51),n&2){let e=t.$implicit,r=s(4);m(e!=="hero"&&r.sectionHasContent(e)?0:-1)}}function Zn(n,t){if(n&1&&(o(0,"a",34),a(1,"Hire me"),i()),n&2){s(3);let e=g(0);u("href","mailto:"+e.email,y)}}function Jn(n,t){if(n&1){let e=k();o(0,"header",11)(1,"a",47),h("click",function(c){v(e);let p=s(3);return b(p.scrollToSection("top",c))}),a(2),i(),o(3,"nav",48)(4,"button",49),h("click",function(c){v(e);let p=s(3);return b(p.scrollToSection("top",c))}),a(5," Home "),i(),C(6,Xn,1,1,null,null,L),i(),o(8,"div",50),_(9,Zn,2,1,"a",34),i()()}if(n&2){s(2);let e=g(0),r=s();l(2),O(" ",e.displayName," "),l(4),x(r.visibleSectionIds()),l(3),m(e.email?9:-1)}}function Kn(n,t){n&1&&(o(0,"div",18),P(1,"span",52)(2,"span",53)(3,"span",54)(4,"span",55)(5,"span",56),i())}function ei(n,t){if(n&1){let e=k();o(0,"button",57),h("click",function(c){v(e);let p=s().$implicit,f=s(4);return b(f.scrollToSection(p,c))}),a(1),i()}if(n&2){let e=s().$implicit,r=s(4);l(),O(" ",r.sectionLabel(e)," ")}}function ti(n,t){if(n&1&&_(0,ei,2,1,"button",58),n&2){let e=t.$implicit,r=s(4);m(e!=="hero"&&r.sectionHasContent(e)?0:-1)}}function ni(n,t){if(n&1){let e=k();o(0,"nav",24)(1,"button",57),h("click",function(c){v(e);let p=s(3);return b(p.scrollToSection("top",c))}),a(2," Home "),i(),C(3,ti,1,1,null,null,L),i()}if(n&2){let e=s(3);l(3),x(e.visibleSectionIds())}}function ii(n,t){if(n&1&&(o(0,"span",32)(1,"span",59),a(2),i()()),n&2){s(2);let e=g(0);l(2),d(e.location)}}function oi(n,t){n&1&&(o(0,"span",60),a(1,"\xB7"),i())}function ri(n,t){if(n&1&&(_(0,oi,2,0,"span",60),o(1,"a",61),a(2),i()),n&2){s(2);let e=g(0);m(e.location?0:-1),l(),u("href","mailto:"+e.email,y),l(),d(e.email)}}function ai(n,t){n&1&&(o(0,"span",60),a(1,"\xB7"),i())}function li(n,t){if(n&1&&(_(0,ai,2,0,"span",60),o(1,"a",62),a(2),i()),n&2){s(2);let e=g(0);m(e.location||e.email?0:-1),l(),u("href","tel:"+e.phone,y),l(),d(e.phone)}}function ci(n,t){n&1&&(o(0,"span",60),a(1,"\xB7"),i())}function si(n,t){if(n&1&&(_(0,ci,2,0,"span",60),o(1,"a",63),a(2),i()),n&2){s(2);let e=g(0),r=s();m(e.location||e.email||e.phone?0:-1),l(),u("href",t,y),l(),d(r.publicPageLabel())}}function pi(n,t){if(n&1&&(o(0,"span",60),a(1,"\xB7"),i(),o(2,"a",64),a(3),i()),n&2){let e=t.$implicit;l(2),u("href",e.href,y),l(),d(e.label)}}function mi(n,t){if(n&1&&(o(0,"a",34),a(1,"Email me"),i()),n&2){s(2);let e=g(0);u("href","mailto:"+e.email,y)}}function di(n,t){if(n&1){let e=k();o(0,"button",35),h("click",function(c){v(e);let p=s(3);return b(p.scrollToSection("projects",c))}),a(1," View work "),i()}}function _i(n,t){if(n&1&&(o(0,"div",37)(1,"span",65),a(2),i(),P(3,"span",66),i()),n&2){let e=s(3);l(2),d(e.nameInitial())}}function fi(n,t){if(n&1&&(o(0,"li",68)(1,"span",69),a(2),i(),o(3,"span",70),a(4),i()()),n&2){let e=t.$implicit,r=t.$index;E("--i",r),l(2),d(e.value),l(2),d(e.label)}}function gi(n,t){if(n&1&&(o(0,"ul",38),C(1,fi,5,4,"li",67,An),i()),n&2){let e=s(3);l(),x(e.siteStats())}}function ui(n,t){if(n&1&&(o(0,"p",78),a(1),i()),n&2){let e=s(),r=s(3);l(),d(r.skillsPlain(e.tech_stack))}}function Ci(n,t){if(n&1&&(o(0,"a",80),a(1," Live preview "),i()),n&2){let e=s();u("href",e.live_url,y)}}function xi(n,t){if(n&1&&(o(0,"a",80),a(1,"Repository"),i()),n&2){let e=s();u("href",e.repo_url,y)}}function hi(n,t){if(n&1){let e=k();o(0,"section",39)(1,"div",71)(2,"span",72),a(3),i(),P(4,"span",73),i(),o(5,"div",74)(6,"p",75),a(7," Featured case study "),i(),o(8,"h2",76),a(9),i(),o(10,"p",77),a(11),i(),_(12,ui,2,1,"p",78),o(13,"div",79),_(14,Ci,2,1,"a",80)(15,xi,2,1,"a",80),o(16,"button",81),h("click",function(c){v(e);let p=s(3);return b(p.scrollToSection("projects",c))}),a(17," All projects "),i()()()()}if(n&2){let e=t,r=s(3);l(3),d(r.nameInitial()),l(6),d(e.name),l(2),d(e.one_liner),l(),m(e.tech_stack!=null&&e.tech_stack.length?12:-1),l(2),m(e.live_url?14:-1),l(),m(e.repo_url?15:-1)}}function vi(n,t){}function bi(n,t){n&1&&a(0," Narrative ")}function Pi(n,t){n&1&&a(0," Intro ")}function yi(n,t){n&1&&a(0," Narrative ")}function Mi(n,t){n&1&&a(0," About ")}function wi(n,t){n&1&&a(0," The story ")}function ki(n,t){n&1&&a(0," Professional summary ")}function Oi(n,t){if(n&1&&(o(0,"section",82)(1,"header",88)(2,"span",89),a(3,"01"),i(),o(4,"div",90)(5,"p",91),_(6,bi,1,0)(7,Pi,1,0)(8,yi,1,0),i(),o(9,"h2",92),_(10,Mi,1,0)(11,wi,1,0)(12,ki,1,0),i()()(),o(13,"div",93)(14,"span",94),a(15,"\u201C"),i(),o(16,"p",95),a(17),i()()()),n&2){s(4);let e=g(0);l(6),m(e.templateId==="portavia"?6:e.templateId==="meeko"?7:8),l(4),m(e.templateId==="portavia"?10:e.templateId==="meeko"?11:12),l(7),d(e.bio)}}function Si(n,t){n&1&&a(0," Path ")}function Ei(n,t){n&1&&a(0," Career ")}function Ti(n,t){n&1&&a(0," Timeline ")}function Ii(n,t){n&1&&a(0," Experience ")}function Fi(n,t){n&1&&(o(0,"p",104),a(1),i()),n&2&&(l(),d(t))}function zi(n,t){if(n&1&&(o(0,"li",98)(1,"span",99),a(2),i(),o(3,"div",100)(4,"div",101)(5,"div")(6,"h3",102),a(7),i(),o(8,"p",103),a(9),i()(),_(10,Fi,2,1,"p",104),i(),o(11,"p",105),a(12),i()()()),n&2){let e,r=t.$implicit,c=t.$index,p=s(6);E("--i",c),l(2),d(p.padIndex(c)),l(5),d(r.role),l(2),d(r.company),l(),m((e=p.dateRange(r.start_date,r.end_date))?10:-1,e),l(2),d(r.one_liner)}}function Li(n,t){if(n&1&&(o(0,"section",83)(1,"header",88)(2,"span",89),a(3,"02"),i(),o(4,"div",90)(5,"p",91),_(6,Si,1,0)(7,Ei,1,0),i(),o(8,"h2",92),_(9,Ti,1,0)(10,Ii,1,0),i()()(),o(11,"ol",96),C(12,zi,13,7,"li",97,Bn),i()()),n&2){s(4);let e=g(0);l(6),m(e.templateId==="meeko"?6:7),l(3),m(e.templateId==="meeko"?9:10),l(3),x(e.experience)}}function ji(n,t){n&1&&a(0," Archive ")}function $i(n,t){n&1&&a(0," Gallery ")}function Vi(n,t){n&1&&a(0," Selected work ")}function Ri(n,t){n&1&&a(0," Selected work ")}function Ai(n,t){n&1&&a(0," Made things ")}function Bi(n,t){n&1&&a(0," Selected projects ")}function Hi(n,t){if(n&1&&(o(0,"a",80),a(1,"Live demo"),i()),n&2){let e=s(2).$implicit;u("href",e.live_url,y)}}function Ni(n,t){if(n&1&&(o(0,"a",80),a(1,"Repository"),i()),n&2){let e=s(2).$implicit;u("href",e.repo_url,y)}}function Di(n,t){if(n&1&&(o(0,"div",113),_(1,Hi,2,1,"a",80)(2,Ni,2,1,"a",80),i()),n&2){let e=s().$implicit;l(),m(e.live_url?1:-1),l(),m(e.repo_url?2:-1)}}function qi(n,t){if(n&1&&(o(0,"p",115)(1,"span",116),a(2,"Tech"),i(),a(3),i()),n&2){let e=s().$implicit,r=s(6);l(3),O(" ",r.skillsPlain(e.tech_stack)," ")}}function Ui(n,t){if(n&1&&(o(0,"li",108),P(1,"div",109),o(2,"div",110),a(3),i(),o(4,"div",111)(5,"h3",112),a(6),i(),_(7,Di,3,2,"div",113),i(),o(8,"p",114),a(9),i(),_(10,qi,4,1,"p",115),i()),n&2){let e=t.$implicit,r=t.$index,c=s(6);E("--i",r),l(3),d(c.padIndex(r)),l(3),d(e.name),l(),m(e.live_url||e.repo_url?7:-1),l(2),d(e.one_liner),l(),m(e.tech_stack!=null&&e.tech_stack.length?10:-1)}}function Wi(n,t){if(n&1&&(o(0,"section",84)(1,"header",88)(2,"span",89),a(3,"03"),i(),o(4,"div",90)(5,"p",91),_(6,ji,1,0)(7,$i,1,0)(8,Vi,1,0),i(),o(9,"h2",92),_(10,Ri,1,0)(11,Ai,1,0)(12,Bi,1,0),i()()(),o(13,"ul",106),C(14,Ui,11,7,"li",107,Hn),i()()),n&2){s(4);let e=g(0),r=s();l(6),m(e.templateId==="portavia"?6:e.templateId==="meeko"?7:8),l(4),m(e.templateId==="portavia"?10:e.templateId==="meeko"?11:12),l(4),x(r.projectList())}}function Gi(n,t){n&1&&a(0," Toolkit ")}function Qi(n,t){n&1&&a(0," Capabilities ")}function Yi(n,t){n&1&&a(0," Expertise ")}function Xi(n,t){n&1&&a(0," Skills & tools ")}function Zi(n,t){n&1&&a(0," Skills ")}function Ji(n,t){if(n&1&&(o(0,"span",121),a(1),i()),n&2){let e=t.$implicit;l(),d(e)}}function Ki(n,t){if(n&1&&(o(0,"div",119)(1,"dt"),a(2),i(),o(3,"dd",120),
1C(4,Ji,2,1,"span",121,L),i()()),n&2){let e=t.$implicit,r=t.$index;E("--i",r),l(2),d(e.category),l(2),x(e.skills)}}function eo(n,t){if(n&1&&(o(0,"section",85)(1,"header",88)(2,"span",89),a(3,"04"),i(),o(4,"div",90)(5,"p",91),_(6,Gi,1,0)(7,Qi,1,0),i(),o(8,"h2",92),_(9,Yi,1,0)(10,Xi,1,0)(11,Zi,1,0),i()()(),o(12,"dl",117),C(13,Ki,6,3,"div",118,Nn),i()()),n&2){s(4);let e=g(0),r=s();l(6),m(e.templateId==="meeko"?6:7),l(3),m(e.templateId==="portavia"?9:e.templateId==="meeko"?10:11),l(4),x(r.skillEntries())}}function to(n,t){n&1&&a(0," Studies ")}function no(n,t){n&1&&a(0," Learning ")}function io(n,t){n&1&&a(0," Education ")}function oo(n,t){n&1&&a(0," Education ")}function ro(n,t){if(n&1&&a(0),n&2){let e=s().$implicit;O(", ",e.field," ")}}function ao(n,t){if(n&1&&(o(0,"p",125),a(1),i()),n&2){let e=s().$implicit;l(),d(e.end_date)}}function lo(n,t){if(n&1&&(o(0,"li",124)(1,"div")(2,"h3"),a(3),_(4,ro,1,1),i(),o(5,"p"),a(6),i()(),_(7,ao,2,1,"p",125),i()),n&2){let e=t.$implicit,r=t.$index;E("--i",r),l(3),d(e.degree),l(),m(e.field?4:-1),l(2),d(e.institution),l(),m(e.end_date?7:-1)}}function co(n,t){if(n&1&&(o(0,"section",86)(1,"header",88)(2,"span",89),a(3,"05"),i(),o(4,"div",90)(5,"p",91),_(6,to,1,0)(7,no,1,0),i(),o(8,"h2",92),_(9,io,1,0)(10,oo,1,0),i()()(),o(11,"ul",122),C(12,lo,8,6,"li",123,Dn),i()()),n&2){s(4);let e=g(0);l(6),m(e.templateId==="meeko"?6:7),l(3),m(e.templateId==="meeko"?9:10),l(3),x(e.education)}}function so(n,t){n&1&&a(0," Connect ")}function po(n,t){n&1&&a(0," Hello ")}function mo(n,t){n&1&&a(0," Next step ")}function _o(n,t){n&1&&a(0," Get in touch ")}function fo(n,t){n&1&&a(0," Let\u2019s talk ")}function go(n,t){n&1&&a(0," Contact ")}function uo(n,t){n&1&&a(0," Open to roles, collaborations, and interesting problems. Prefer email for first contact. ")}function Co(n,t){n&1&&a(0," Share this page with recruiters, or reach out on a channel below. ")}function xo(n,t){if(n&1&&(o(0,"a",34),a(1,"Email me"),i()),n&2){s(5);let e=g(0);u("href","mailto:"+e.email,y)}}function ho(n,t){if(n&1&&(o(0,"li")(1,"span",130),a(2,"Email"),i(),o(3,"a",131),a(4),i()()),n&2){s(5);let e=g(0);l(3),u("href","mailto:"+e.email,y),l(),d(e.email)}}function vo(n,t){if(n&1&&(o(0,"li")(1,"span",130),a(2,"Phone"),i(),o(3,"a",132),a(4),i()()),n&2){s(5);let e=g(0);l(3),u("href","tel:"+e.phone,y),l(),d(e.phone)}}function bo(n,t){if(n&1&&(o(0,"li")(1,"span",130),a(2,"Location"),i(),o(3,"span",133),a(4),i()()),n&2){s(5);let e=g(0);l(4),d(e.location)}}function Po(n,t){if(n&1&&(o(0,"li")(1,"span",130),a(2,"Portfolio"),i(),o(3,"a",134),a(4),i()()),n&2){let e=s(6);l(3),u("href",t,y),l(),d(e.publicPageLabel())}}function yo(n,t){if(n&1&&(o(0,"li")(1,"span",130),a(2),i(),o(3,"a",80),a(4),i()()),n&2){let e=t.$implicit;l(2),d(e.label),l(),u("href",e.href,y),l(),d(e.href)}}function Mo(n,t){if(n&1){let e=k();o(0,"section",87)(1,"header",88)(2,"span",89),a(3,"06"),i(),o(4,"div",90)(5,"p",91),_(6,so,1,0)(7,po,1,0)(8,mo,1,0),i(),o(9,"h2",92),_(10,_o,1,0)(11,fo,1,0)(12,go,1,0),i()()(),o(13,"div",126)(14,"p",127),_(15,uo,1,0)(16,Co,1,0),i(),o(17,"div",128),_(18,xo,2,1,"a",34),o(19,"button",35),h("click",function(){v(e);let c=s(5);return b(c.copyPublicLink())}),a(20),i()(),o(21,"ul",129),_(22,ho,5,2,"li")(23,vo,5,2,"li")(24,bo,5,1,"li")(25,Po,5,2,"li"),C(26,yo,5,3,"li",null,Je),i()()()}if(n&2){let e;s(4);let r=g(0),c=s();l(6),m(r.templateId==="portavia"?6:r.templateId==="meeko"?7:8),l(4),m(r.templateId==="portavia"?10:r.templateId==="meeko"?11:12),l(5),m(c.isFullSiteTemplate()?15:16),l(3),m(r.email?18:-1),l(2),O(" ",c.linkCopied()?"Link copied":"Copy portfolio link"," "),l(2),m(r.email?22:-1),l(),m(r.phone?23:-1),l(),m(r.location?24:-1),l(),m((e=c.publicPageUrl())?25:-1,e),l(),x(c.socialEntries())}}function wo(n,t){if(n&1&&_(0,vi,0,0)(1,Oi,18,3,"section",82)(2,Li,14,2,"section",83)(3,Wi,16,2,"section",84)(4,eo,15,2,"section",85)(5,co,14,2,"section",86)(6,Mo,28,9,"section",87),n&2){let e,r=s().$implicit;m((e=r)==="hero"?0:e==="about"?1:e==="experience"?2:e==="projects"?3:e==="skills"?4:e==="education"?5:e==="contact"?6:-1)}}function ko(n,t){if(n&1&&_(0,wo,7,1),n&2){let e=t.$implicit,r=s(3);m(r.sectionHasContent(e)?0:-1)}}function Oo(n,t){if(n&1){let e=k();o(0,"h2",137),a(1,"Thanks, we got it"),i(),o(2,"p",138),a(3,"Our team will review this portfolio. Abusive pages are taken down."),i(),o(4,"button",139),h("click",function(){v(e);let c=s(4);return b(c.closeReport())}),a(5,"Close"),i()}}function So(n,t){if(n&1&&(o(0,"p",140),a(1),i()),n&2){let e=s(5);l(),d(e.reportError())}}function Eo(n,t){if(n&1&&(o(0,"option",143),a(1),i()),n&2){let e=t.$implicit;u("value",e.id),l(),d(e.label)}}function To(n,t){if(n&1){let e=k();o(0,"h2",137),a(1,"Report this portfolio"),i(),o(2,"p",138),a(3,"Tell us what\u2019s wrong. False reports may be ignored."),i(),_(4,So,2,1,"p",140),o(5,"label",141),a(6,"Reason"),i(),o(7,"select",142),h("ngModelChange",function(c){v(e);let p=s(4);return b(p.reportReason.set(c))}),C(8,Eo,2,2,"option",143,qn),i(),o(10,"label",144),a(11,"Details (optional)"),i(),o(12,"textarea",145),h("ngModelChange",function(c){v(e);let p=s(4);return b(p.reportDetails.set(c))}),i(),o(13,"label",146),a(14,"Your email (optional)"),i(),o(15,"input",147),h("ngModelChange",function(c){v(e);let p=s(4);return b(p.reportEmail.set(c))}),i(),o(16,"div",148)(17,"button",149),h("click",function(){v(e);let c=s(4);return b(c.closeReport())}),a(18,"Cancel"),i(),o(19,"button",150),h("click",function(){v(e);let c=s(4);return b(c.submitReport())}),a(20),i()()}if(n&2){let e=s(4);l(4),m(e.reportError()?4:-1),l(3),u("ngModel",e.reportReason()),l(),x(e.reportReasons),l(4),u("ngModel",e.reportDetails()),l(3),u("ngModel",e.reportEmail()),l(4),u("disabled",e.reportBusy()),l(),O(" ",e.reportBusy()?"Sending\u2026":"Submit report"," ")}}function Io(n,t){if(n&1){let e=k();o(0,"div",46)(1,"button",135),h("click",function(){v(e);let c=s(3);return b(c.closeReport())}),i(),o(2,"div",136),_(3,Oo,6,0)(4,To,21,6),i()()}if(n&2){let e=s(3);l(3),m(e.reportDone()?3:4)}}function Fo(n,t){if(n&1){let e=k();o(0,"article",10),_(1,Jn,10,2,"header",11),o(2,"div",12)(3,"aside",13)(4,"span",14),a(5),i(),P(6,"span",15),i(),o(7,"div",16)(8,"div",17),_(9,Kn,6,0,"div",18),o(10,"header",19)(11,"div",20),a(12),i(),o(13,"div",21)(14,"p",6)(15,"span",22),a(16,"Portfolio"),i(),o(17,"span",23),a(18),i()(),_(19,ni,5,0,"nav",24),i(),o(20,"p",25)(21,"span",26),a(22,"~/p/"),i(),a(23),i(),o(24,"div",27)(25,"p",28),a(26,"Available for work"),i(),o(27,"h1",29),a(28),i(),o(29,"p",30),a(30),i(),o(31,"p",31),_(32,ii,3,1,"span",32)(33,ri,3,3)(34,li,3,3)(35,si,3,3),C(36,pi,4,2,null,null,Je),i(),o(38,"div",33),_(39,mi,2,1,"a",34),o(40,"button",35),h("click",function(){v(e);let c=s(2);return b(c.copyPublicLink())}),a(41),i(),_(42,di,2,0,"button",36),i()(),_(43,_i,4,1,"div",37),i()(),_(44,gi,3,0,"ul",38)(45,hi,18,6,"section",39),o(46,"div",40),C(47,ko,1,1,null,null,L),o(49,"footer",41)(50,"div",42)(51,"p"),a(52," Built on "),o(53,"a",43),a(54,"Akalan"),i(),a(55," . AI interview prep & career tools that help you get hired. "),i(),o(56,"a",44),a(57,"Create your portfolio"),i()(),o(58,"button",45),h("click",function(){v(e);let c=s(2);return b(c.openReport())}),a(59,"Report this page"),i()()()()(),_(60,Io,5,1,"div",46),i()}if(n&2){let e,r;s();let c=g(0),p=s();T("pp--fullsite",p.isFullSiteTemplate()),$("data-template",c.templateId),l(),m(p.isFullSiteTemplate()?1:-1),l(4),d(p.nameInitial()),l(4),m(p.isFullSiteTemplate()?9:-1),l(3),d(p.nameInitial()),l(6),d(p.folioYear),l(),m(p.isFullSiteTemplate()?-1:19),l(4),O("",c.slug," "),l(5),d(c.displayName),l(2),d(c.headline),l(2),m(c.location?32:-1),l(),m(c.email?33:-1),l(),m(c.phone?34:-1),l(),m((e=p.publicPageUrl())?35:-1,e),l(),x(p.socialEntries()),l(3),m(c.email?39:-1),l(2),O(" ",p.linkCopied()?"Link copied":"Copy link"," "),l(),m(p.sectionHasContent("projects")?42:-1),l(),m(p.isFullSiteTemplate()?43:-1),l(),m(p.siteStats().length?44:-1),l(),m((r=p.featuredProject())?45:-1,r),l(),T("pp-body--site",p.isFullSiteTemplate()),l(),x(p.visibleSectionIds()),l(2),T("pp-footer--site",p.isFullSiteTemplate()),l(11),m(p.reportOpen()?60:-1)}}function zo(n,t){if(n&1&&(q(0),_(1,Gn,1,1,"app-cinema-portfolio",8)(2,Qn,1,1,"app-manuscript-portfolio",8)(3,Fo,61,27,"article",9)),n&2){let e=U(s().portfolio());l(),m(e.templateId==="cinema"?1:e.templateId==="manuscript"?2:3)}}var Ze=class n{route=z(Se);api=z(Ae);seo=z(Ve);platformId=z(B);revealObserver=null;revealBound=!1;reportReasons=Re;loading=M(!0);error=M(!1);portfolio=M(null);reportOpen=M(!1);reportReason=M("impersonation");reportDetails=M("");reportEmail=M("");reportBusy=M(!1);reportDone=M(!1);reportError=M(null);linkCopied=M(!1);visibleSectionIds=w(()=>{let t=this.portfolio();return t?[...t.sections??[]].filter(e=>e.visible).sort((e,r)=>e.order-r.order).map(e=>e.id):[]});nameInitial=w(()=>{let t=(this.portfolio()?.displayName??"").trim();return t?t.charAt(0).toUpperCase():"\xB7"});publicPageUrl=w(()=>{let t=this.portfolio()?.slug;return t?`${Ee()}/p/${t}`:""});publicPageLabel=w(()=>{let t=this.publicPageUrl();return t?t.replace(/^https?:\/\//i,""):""});folioYear=new Date().getFullYear();featuredProject=w(()=>{let t=this.portfolio()?.templateId;return this.isFullSiteId(t)?(this.portfolio()?.projects??[])[0]??null:null});projectList=w(()=>{let t=this.portfolio();if(!t)return[];let e=t.projects??[];return this.isFullSiteId(t.templateId)&&e.length>1?e.slice(1):e});padIndex(t){let e=t+1;return e<10?`0${e}`:String(e)}siteStats=w(()=>{let t=this.portfolio();if(!t)return[];let e=t.templateId;if(!this.isFullSiteId(e))return[];let r=Object.values(t.skillsGrouped??{}).reduce((c,p)=>c+(p?.length??0),0);return e==="cinema"?[{value:String(t.projects?.length??0),label:"Animations"},{value:String(t.experience?.length??0),label:"Credits"},{value:String(r),label:"Tools"},{value:String(this.folioYear),label:"Year"}]:[{value:String(t.projects?.length??0),label:"Projects"},{value:String(t.experience?.length??0),label:"Roles"},{value:String(r),label:"Skills"},{value:String(this.folioYear),label:"Year"}]});isFullSiteTemplate=w(()=>this.isFullSiteId(this.portfolio()?.templateId));isFullSiteId(t){return t==="portavia"||t==="meeko"}
1ngOnInit(){let t=this.route.snapshot.paramMap.get("slug")??"";if(!t){this.loading.set(!1),this.error.set(!0);return}this.api.getPublic(t).subscribe({next:e=>{this.portfolio.set(e),this.loading.set(!1),this.revealBound=!1,F(this.platformId)&&this.seo.applyFromRouteData({title:e.seoTitle||e.displayName,description:e.seoDescription||e.bio.slice(0,160),robots:"index, follow",ogType:"website",image:e.ogImageUrl},`/p/${e.slug}`)},error:()=>{this.loading.set(!1),this.error.set(!0)}})}ngAfterViewChecked(){F(this.platformId)&&(this.loading()||!this.isFullSiteTemplate()||this.revealBound||this.bindRevealObservers())}ngOnDestroy(){this.revealObserver?.disconnect(),this.revealObserver=null}bindRevealObservers(){let t=document.querySelectorAll(".pp-reveal");if(!t.length)return;if(this.revealBound=!0,typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches){t.forEach(r=>r.classList.add("is-in"));return}this.revealObserver?.disconnect(),this.revealObserver=new IntersectionObserver(r=>{for(let c of r)c.isIntersecting&&(c.target.classList.add("is-in"),this.revealObserver?.unobserve(c.target))},{rootMargin:"0px 0px -8% 0px",threshold:.12}),t.forEach(r=>this.revealObserver.observe(r))}scrollToSection(t,e){if(e?.preventDefault(),e?.stopPropagation(),!F(this.platformId))return;let r=t==="top"||t==="hero"?"top":t,c=document.getElementById(r);if(c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),typeof history<"u"&&history.replaceState)){let p=`${window.location.pathname}${window.location.search}`;history.replaceState(null,"",r==="top"?p:`${p}#${r}`)}}copyPublicLink(){return D(this,null,function*(){let t=this.publicPageUrl();if(!(!t||!F(this.platformId)))try{yield navigator.clipboard.writeText(t),this.linkCopied.set(!0),window.setTimeout(()=>this.linkCopied.set(!1),2e3)}catch{this.linkCopied.set(!1)}})}skillEntries(){let t=this.portfolio()?.skillsGrouped??{};return Object.entries(t).map(([e,r])=>({category:e,skills:r}))}skillsPlain(t){return t.filter(Boolean).join(" \xB7 ")}socialEntries(){let t=this.portfolio()?.socialLinks??{},e=[];return t.linkedin&&e.push({label:"LinkedIn",href:t.linkedin}),t.github&&e.push({label:"GitHub",href:t.github}),t.twitter&&e.push({label:"Twitter",href:t.twitter}),e}hasContactContent(){let t=this.portfolio();return!!(this.publicPageUrl()||t?.email||t?.phone||t?.location||this.socialEntries().length>0)}dateRange(t,e){let r=(t??"").trim(),c=(e??"").trim()||"Present";return!r&&!e?"":r?`${r} \u2013 ${c}`:c}sectionHasContent(t){let e=this.portfolio();if(!e)return!1;switch(t){case"hero":return!0;case"about":return!!e.bio?.trim();case"experience":return e.experience.length>0;case"projects":return this.isFullSiteId(e.templateId)?this.projectList().length>0:e.projects.length>0;case"skills":return this.skillEntries().length>0;case"education":return e.education.length>0;case"contact":return this.hasContactContent();default:return!1}}sectionLabel(t){let e=this.portfolio()?.templateId;return e==="aiml"?{about:"About",education:"Academics",projects:"Projects & research",skills:"Skills",experience:"Experience",contact:"Contact"}[t]??N[t]??t:e==="studio"?{about:"About",projects:"Featured work",skills:"Toolkit",experience:"Credits",contact:"Contact"}[t]??N[t]??t:e==="portavia"?{about:"About",projects:"Selected work",experience:"Experience",skills:"Expertise",contact:"Contact"}[t]??N[t]??t:e==="meeko"?{about:"About me",projects:"Portfolio",experience:"Experience",skills:"Skills",education:"Education",contact:"Get in touch"}[t]??N[t]??t:e==="cinema"?{about:"Introduction",projects:"Project gallery",skills:"Technical skills",experience:"Credits & CV",education:"Studies",contact:"Contact"}[t]??N[t]??t:N[t]??t}openReport(){this.reportOpen.set(!0),this.reportDone.set(!1),this.reportError.set(null)}closeReport(){this.reportOpen.set(!1)}submitReport(){let t=this.portfolio();!t||this.reportBusy()||(this.reportBusy.set(!0),this.reportError.set(null),this.api.reportPublic(t.slug,{reason:this.reportReason(),details:this.reportDetails().trim()||void 0,reporterEmail:this.reportEmail().trim()||void 0}).subscribe({next:()=>{this.reportBusy.set(!1),this.reportDone.set(!0)},error:e=>{this.reportBusy.set(!1),this.reportError.set(e?.error?.message||"Could not send report. Try again.")}}))}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=H({type:n,selectors:[["app-public-portfolio-page"]],hostVars:1,hostBindings:function(e,r){if(e&2){let c;$("data-template",(c=(c=r.portfolio())==null?null:c.templateId)!==null&&c!==void 0?c:null)}},decls:3,vars:1,consts:[["aria-hidden","true",1,"pp","pp--loading"],[1,"pp","pp--empty"],[1,"pp-skel","pp-skel--band"],[1,"pp-skel","pp-skel--title"],[1,"pp-skel","pp-skel--line"],[1,"pp-skel","pp-skel--block"],[1,"pp-kicker"],["routerLink","/",1,"pp-btn"],[3,"portfolio"],["itemscope","","itemtype","https://schema.org/Person",1,"pp",3,"pp--fullsite"],["itemscope","","itemtype","https://schema.org/Person",1,"pp"],[1,"pp-sitebar"],[1,"pp-folio"],["aria-hidden","true",1,"pp-spine"],[1,"pp-spine__mark"],[1,"pp-spine__rule"],[1,"pp-folio__main"],["
1id","top",1,"pp-hero"],["aria-hidden","true",1,"pp-hero__atmosphere"],[1,"pp-identity"],["aria-hidden","true",1,"pp-identity__mark"],[1,"pp-identity__top"],[1,"pp-kicker__label"],[1,"pp-kicker__year"],["aria-label","Sections",1,"pp-nav"],["aria-hidden","true",1,"pp-path"],[1,"pp-path__prompt"],[1,"pp-hero__copy"],[1,"pp-hero-eyebrow"],["itemprop","name",1,"pp-name"],["itemprop","jobTitle",1,"pp-title"],[1,"pp-meta"],["itemprop","address","itemscope","","itemtype","https://schema.org/PostalAddress"],[1,"pp-actions"],[1,"pp-btn","pp-btn--sm",3,"href"],["type","button",1,"pp-btn","pp-btn--ghost","pp-btn--sm",3,"click"],["type","button",1,"pp-btn","pp-btn--ghost","pp-btn--sm"],["aria-hidden","true",1,"pp-hero__aside"],["aria-label","Highlights",1,"pp-stats","pp-reveal"],["aria-label","Featured project",1,"pp-featured","pp-reveal"],[1,"pp-body"],[1,"pp-footer"],[1,"pp-footer__row"],["routerLink","/",1,"pp-brand"],["routerLink","/login",1,"pp-btn","pp-btn--sm"],["type","button",1,"pp-report",3,"click"],["role","dialog","aria-modal","true","aria-labelledby","pp-report-title",1,"pp-modal"],["href","#top",1,"pp-sitebar__brand",3,"click"],["aria-label","Site",1,"pp-sitebar__nav"],["type","button",1,"pp-sitebar__link",3,"click"],[1,"pp-sitebar__actions"],["type","button",1,"pp-sitebar__link"],[1,"pp-hero__orb","pp-hero__orb--a"],[1,"pp-hero__orb","pp-hero__orb--b"],[1,"pp-hero__orb","pp-hero__orb--c"],[1,"pp-hero__grid"],[1,"pp-hero__grain"],["type","button",1,"pp-nav__link",3,"click"],["type","button",1,"pp-nav__link"],["itemprop","addressLocality"],["aria-hidden","true",1,"pp-meta__sep"],["itemprop","email",1,"pp-meta__link",3,"href"],["itemprop","telephone",1,"pp-meta__link",3,"href"],["itemprop","url",1,"pp-meta__link",3,"href"],["target","_blank","rel","noopener noreferrer","itemprop","sameAs",1,"pp-meta__link",3,"href"],[1,"pp-hero__monogram"],[1,"pp-hero__ring"],[1,"pp-stats__item",3,"--i"],[1,"pp-stats__item"],[1,"pp-stats__value"],[1,"pp-stats__label"],["aria-hidden","true",1,"pp-featured__visual"],[1,"pp-featured__glyph"],[1,"pp-featured__mesh"],[1,"pp-featured__content"],[1,"pp-featured__eyebrow"],[1,"pp-featured__name"],[1,"pp-featured__body"],[1,"pp-featured__tech"],[1,"pp-featured__links"],["target","_blank","rel","noopener noreferrer",3,"href"],["type","button",1,"pp-featured__more",3,"click"],["id","about",1,"pp-section","pp-section--about","pp-reveal"],["id","experience",1,"pp-section","pp-section--exp","pp-reveal"],["id","projects",1,"pp-section","pp-section--proj","pp-reveal"],["id","skills",1,"pp-section","pp-section--skills","pp-reveal"],["id","education",1,"pp-section","pp-section--edu","pp-reveal"],["id","contact",1,"pp-section","pp-section--contact","pp-reveal"],[1,"pp-section__head"],["aria-hidden","true",1,"pp-section__index"],[1,"pp-section__titles"],[1,"pp-section__eyebrow"],[1,"pp-section__h"],[1,"pp-about"],["aria-hidden","true",1,"pp-about__mark"],["itemprop","description",1,"pp-prose"],[1,"pp-exp"],["itemscope","","itemtype","https://schema.org/OrganizationRole",1,"pp-exp__row",3,"--i"],["itemscope","","itemtype","https://schema.org/OrganizationRole",1,"pp-exp__row"],["aria-hidden","true",1,"pp-exp__num"],[1,"pp-exp__main"],[1,"pp-exp__head"],["itemprop","roleName",1,"pp-exp__role"],["itemprop","worksFor",1,"pp-exp__co"],[1,"pp-exp__dates"],[1,"pp-exp__body"],[1,"pp-proj"],[1,"pp-proj__row",3,"--i"],[1,"pp-proj__row"],["aria-hidden","true",1,"pp-proj__accent"],["aria-hidden","true",1,"pp-proj__index"],[1,"pp-proj__head"],[1,"pp-proj__name"],[1,"pp-proj__links"],[1,"pp-proj__body"],[1,"pp-proj__tech"],[1,"pp-proj__tech-label"],[1,"pp-skills"],[1,"pp-skills__row",3,"--i"],[1,"pp-skills__row"],[1,"pp-skills__list"],[1,"pp-skill"],[1,"pp-edu"],[1,"pp-edu__row",3,"--i"],[1,"pp-edu__row"],[1,"pp-edu__date"],[1,"pp-contact-panel"],[1,"pp-contact-lede"],[1,"pp-actions","pp-actions--contact"],[1,"pp-contact-list"],[1,"pp-contact-list__label"],["itemprop","email",3,"href"],["itemprop","telephone",3,"href"],["itemprop","address"],["itemprop","url",3,"href"],["type","button","aria-label","Close",1,"pp-modal__backdrop",3,"click"],[1,"pp-modal__panel"],["id","pp-report-title",1,"pp-modal__title"],[1,"pp-modal__body"],["type","button",1,"pp-btn",3,"click"],["role","alert",1,"pp-modal__error"],["for","pp-reason",1,"pp-modal__label"],["id","pp-reason",1,"pp-modal__input",3,"ngModelChange","ngModel"],[3,"value"],["for","pp-details",1,"pp-modal__label"],["id","pp-details","rows","3",1,"pp-modal__input","pp-modal__textarea",3,"ngModelChange","ngModel"],["for","pp-email",1,"pp-modal__label"],["id","pp-email","type","email","placeholder","so we can follow up",1,"pp-modal__input",3,"ngModelChange","ngModel"],[1,"pp-modal__actions"],["type","button",1,"pp-btn","pp-btn--ghost",3,"click"],["type","button",1,"pp-btn",3,"click","disabled"]],template:function(e,r){e&1&&_(0,Un,5,0,"div",0)(1,Wn,9,0,"div",1)(2,zo,4,2),e&2&&m(r.loading()?0:r.error()||!r.portfolio()?1:2)},dependencies:[W,$e,Le,je,Te,ze,Ie,Fe,G,ie,oe],styles:['[_nghost-%COMP%]{display:block;min-height:100vh;--pp-paper: #dde2de;--pp-wash: #f4f6f4;--pp-ink: #121614;--pp-muted: #5a6660;--pp-rule: #9aa39c;--pp-accent: #2a5f52;--pp-accent-soft: color-mix(in srgb, var(--pp-accent) 14%, transparent);--pp-font: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--pp-display: "Fraunces", Georgia, "Times New Roman", serif;--pp-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--pp-col: 40rem;--pp-pad-x: clamp(1.1rem, 4vw, 2.25rem);--pp-rhythm: clamp(2.25rem, 4vw, 3.25rem);background:linear-gradient(180deg,color-mix(in srgb,var(--pp-paper) 92%,#cfd6d1) 0%,var(--pp-paper) 28%,var(--pp-paper) 100%);color:var(--pp-ink);font-family:var(--pp-font);-webkit-font-smoothing:antialiased}.dark[_nghost-%COMP%], .dark   [_nghost-%COMP%]{--pp-paper: #1a1e1c;--pp-wash: #222826;--pp-ink: #eef1ee;--pp-muted: #9aa89f;--pp-rule: #4a5550;--pp-accent: #6fa894}.pp[_ngcontent-%COMP%]{min-height:100vh;color:var(--pp-ink)}.pp-folio[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto minmax(0,1fr);max-width:calc(var(--pp-col) + 5.5rem);margin:0 auto;min-height:100vh;padding:0 var(--pp-pad-x) clamp(3rem,8vw,5rem);gap:0 .85rem}.pp-spine[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;width:2.75rem;padding:2rem 0 0;gap:.85rem}.pp-spine__mark[_ngcontent-%COMP%]{display:grid;place-items:center;width:1.65rem;height:1.65rem;border:1.5px solid var(--pp-accent);color:var(--pp-accent);font-family:var(--pp-display);font-size:.85rem;font-weight:600;line-height:1;flex-shrink:0;animation:pp-mark-in .6s cubic-bezier(.22,1,.36,1) both}.pp-spine__rule[_ngcontent-%COMP%]{flex:1;width:2px;min-height:6rem;background:var(--pp-accent);border-radius:1px;transform-origin:top center;animation:pp-spine-grow .9s cubic-bezier(.22,1,.36,1) .12s both}.pp-folio__main[_ngcontent-%COMP%]{background:transparent;min-width:0;padding-right:var(--pp-pad-x);animation:pp-fade .55s cubic-bezier(.22,1,.36,1) both}.pp-hero-eyebrow[_ngcontent-%COMP%]{display:none;margin:0 0 .65rem;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pp-accent)}
1.pp-sitebar[_ngcontent-%COMP%], .pp-stats[_ngcontent-%COMP%], .pp-featured[_ngcontent-%COMP%]{display:none}.pp-hero[_ngcontent-%COMP%]{position:relative}.pp-hero[_ngcontent-%COMP%], .pp-section[_ngcontent-%COMP%], .pp-featured[_ngcontent-%COMP%]{scroll-margin-top:5.5rem}.pp-hero__atmosphere[_ngcontent-%COMP%], .pp-hero__aside[_ngcontent-%COMP%], .pp-featured__visual[_ngcontent-%COMP%]{display:none}.pp-hero__copy[_ngcontent-%COMP%]{position:relative;z-index:1}.pp-section__head[_ngcontent-%COMP%]{display:contents}.pp-section__index[_ngcontent-%COMP%], .pp-section__eyebrow[_ngcontent-%COMP%], .pp-about__mark[_ngcontent-%COMP%], .pp-exp__num[_ngcontent-%COMP%], .pp-proj__accent[_ngcontent-%COMP%], .pp-proj__index[_ngcontent-%COMP%]{display:none}.pp-contact-panel[_ngcontent-%COMP%]{display:contents}.pp-identity[_ngcontent-%COMP%]{position:relative;padding:clamp(1.75rem,4vw,2.75rem) 0 1.75rem;border-bottom:1px solid color-mix(in srgb,var(--pp-rule) 65%,transparent);overflow:hidden}.pp-identity__mark[_ngcontent-%COMP%]{display:none}.pp-identity__top[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.25rem;margin-bottom:1.35rem}.pp-kicker[_ngcontent-%COMP%]{margin:0;display:inline-flex;align-items:baseline;gap:.65rem;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--pp-accent)}.pp-kicker__year[_ngcontent-%COMP%]{letter-spacing:.08em;color:var(--pp-muted);font-variant-numeric:tabular-nums}.pp-path[_ngcontent-%COMP%]{display:none;margin:0 0 .75rem;font-family:var(--pp-mono);font-size:.75rem;color:var(--pp-muted)}.pp-path__prompt[_ngcontent-%COMP%]{color:var(--pp-accent)}.pp-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.25rem}.pp-actions--contact[_ngcontent-%COMP%]{margin:0 0 1.25rem}.pp-skills__list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.35rem .55rem;margin:0}.pp-skill[_ngcontent-%COMP%]{font-size:.92rem;line-height:1.45;color:color-mix(in srgb,var(--pp-ink) 85%,transparent)}.pp-skill[_ngcontent-%COMP%]:not(:last-child):after{content:" \\b7";color:var(--pp-muted);margin-left:.35rem}.pp-nav[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.15rem .1rem;position:relative;z-index:2;pointer-events:auto}.pp-nav__link[_ngcontent-%COMP%]{appearance:none;border:none;background:transparent;margin:0;padding:.45rem .55rem;min-height:2.5rem;font-family:inherit;font-size:.78rem;font-weight:500;color:var(--pp-muted);cursor:pointer;border-radius:.2rem;pointer-events:auto;position:relative;z-index:1;transition:color .14s ease,background .14s ease}.pp-nav__link[_ngcontent-%COMP%]:hover{color:var(--pp-ink);background:var(--pp-accent-soft)}.pp-name[_ngcontent-%COMP%]{margin:0;max-width:18ch;font-family:var(--pp-display);font-optical-sizing:auto;font-size:clamp(2.5rem,7vw,3.65rem);font-weight:500;letter-spacing:-.03em;line-height:1.02;color:var(--pp-ink)}.pp-title[_ngcontent-%COMP%]{margin:.85rem 0 0;max-width:34rem;font-size:clamp(1.05rem,2.4vw,1.22rem);font-weight:400;line-height:1.45;color:var(--pp-muted)}.pp-meta[_ngcontent-%COMP%]{margin:1.15rem 0 0;font-size:.88rem;line-height:1.55;color:var(--pp-muted)}.pp-meta__sep[_ngcontent-%COMP%]{margin:0 .4rem;opacity:.5}.pp-meta__link[_ngcontent-%COMP%]{color:var(--pp-ink);font-weight:500;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--pp-accent) 55%,transparent);text-underline-offset:.2em;text-decoration-thickness:1px}.pp-meta__link[_ngcontent-%COMP%]:hover{color:var(--pp-accent);text-decoration-color:var(--pp-accent)}.pp-body[_ngcontent-%COMP%]{padding:.35rem 0 clamp(2rem,5vw,3rem)}.pp-section[_ngcontent-%COMP%]{padding:var(--pp-rhythm) 0;border-bottom:1px solid color-mix(in srgb,var(--pp-rule) 55%,transparent);scroll-margin-top:1.25rem}.pp-section[_ngcontent-%COMP%]:last-of-type{border-bottom:none}.pp-section__h[_ngcontent-%COMP%]{margin:0 0 1.15rem;font-family:var(--pp-font);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pp-accent)}.pp-prose[_ngcontent-%COMP%]{margin:0;max-width:38rem;font-size:1.05rem;line-height:1.72;color:color-mix(in srgb,var(--pp-ink) 92%,transparent)}.pp-exp[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.75rem}.pp-exp__head[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.35rem 1.5rem}.pp-exp__role[_ngcontent-%COMP%]{margin:0;font-size:1.08rem;font-weight:600;letter-spacing:-.015em}.pp-exp__co[_ngcontent-%COMP%]{margin:.2rem 0 0;font-size:.92rem;font-weight:400;color:var(--pp-muted)}.pp-exp__dates[_ngcontent-%COMP%]{margin:.15rem 0 0;font-family:var(--pp-mono);font-size:.75rem;font-weight:500;color:var(--pp-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.pp-exp__body[_ngcontent-%COMP%]{margin:.55rem 0 0;max-width:36rem;font-size:.95rem;line-height:1.62;color:color-mix(in srgb,var(--pp-ink) 82%,transparent)}.pp-proj[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.5rem}.pp-proj__head[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem}.pp-proj__name[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.015em}.pp-proj__links[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.85rem}.pp-proj__links[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{font-size:.78rem;font-weight:600;color:var(--pp-accent);text-decoration:underline;text-underline-offset:.2em}.pp-proj__body[_ngcontent-%COMP%]{margin:.4rem 0 0;font-size:.95rem;line-height:1.62;color:color-mix(in srgb,var(--pp-ink) 82%,transparent)}.pp-proj__tech[_ngcontent-%COMP%]{margin:.55rem 0 0;font-size:.82rem;line-height:1.5;color:var(--pp-muted)}.pp-proj__tech-label[_ngcontent-%COMP%]{font-weight:650;letter-spacing:.06em;text-transform:uppercase;font-size:.65rem;margin-right:.45rem}.pp-skills[_ngcontent-%COMP%]{margin:0;display:flex;flex-direction:column;gap:1rem}.pp-skills__row[_ngcontent-%COMP%]{display:grid;gap:.25rem 1.25rem}@media (min-width: 560px){.pp-skills__row[_ngcontent-%COMP%]{grid-template-columns:8.5rem 1fr;align-items:baseline}}.pp-skills__row[_ngcontent-%COMP%]   dt[_ngcontent-%COMP%]{margin:0;font-size:.78rem;font-weight:650;color:var(--pp-ink)}.pp-skills__row[_ngcontent-%COMP%]   dd[_ngcontent-%COMP%]{margin:0}.pp-edu[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.15rem}.pp-edu__row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem 1rem}.pp-edu__row[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600}
1.pp-edu__row[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:.2rem 0 0;font-size:.9rem;color:var(--pp-muted)}.pp-edu__date[_ngcontent-%COMP%]{margin:0;font-family:var(--pp-mono);font-size:.75rem;font-weight:500;color:var(--pp-muted);font-variant-numeric:tabular-nums}.pp-contact-lede[_ngcontent-%COMP%]{margin:0 0 1.1rem;font-size:.95rem;color:var(--pp-muted)}.pp-contact-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}.pp-contact-list__label[_ngcontent-%COMP%]{display:block;font-size:.65rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--pp-muted);margin-bottom:.2rem}.pp-contact-list[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--pp-ink);word-break:break-all;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--pp-accent) 50%,transparent);text-underline-offset:.2em}.pp-contact-list[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:var(--pp-accent)}.pp-footer[_ngcontent-%COMP%]{margin-top:.5rem;padding-top:1.75rem;border-top:1px solid color-mix(in srgb,var(--pp-rule) 55%,transparent)}.pp-footer__row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.pp-footer[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;max-width:24rem;font-size:.8rem;line-height:1.45;color:var(--pp-muted)}.pp-brand[_ngcontent-%COMP%]{font-weight:650;color:var(--pp-ink);text-decoration:underline;text-underline-offset:.15em}.pp-report[_ngcontent-%COMP%]{margin-top:.65rem;border:none;background:transparent;padding:.35rem 0;font-family:inherit;font-size:.72rem;font-weight:500;color:var(--pp-muted);text-decoration:underline;text-underline-offset:.15em;cursor:pointer;min-height:2.5rem}.pp-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;min-height:2.6rem;padding:0 1.1rem;border-radius:.2rem;border:none;background:var(--pp-ink);color:var(--pp-wash);font-family:inherit;font-size:.85rem;font-weight:600;text-decoration:none;cursor:pointer}.pp-btn--sm[_ngcontent-%COMP%]{min-height:2.35rem;font-size:.8rem}.pp-btn--ghost[_ngcontent-%COMP%]{background:transparent;border:1px solid color-mix(in srgb,var(--pp-rule) 80%,transparent);color:var(--pp-ink)}.pp-btn[_ngcontent-%COMP%]:disabled{opacity:.55;cursor:not-allowed}.pp-nav__link[_ngcontent-%COMP%]:focus-visible, .pp-meta__link[_ngcontent-%COMP%]:focus-visible, .pp-proj__links[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus-visible, .pp-contact-list[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus-visible, .pp-brand[_ngcontent-%COMP%]:focus-visible, .pp-report[_ngcontent-%COMP%]:focus-visible, .pp-btn[_ngcontent-%COMP%]:focus-visible, .pp-modal__input[_ngcontent-%COMP%]:focus-visible, .pp-modal__backdrop[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--pp-accent);outline-offset:3px}.pp--empty[_ngcontent-%COMP%], .pp--loading[_ngcontent-%COMP%]{max-width:32rem;margin:0 auto;padding:4rem 1.25rem}.pp--empty[_ngcontent-%COMP%]{text-align:left}.pp--empty[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin:.5rem 0 0;font-family:var(--pp-display);font-size:1.85rem;font-weight:500}.pp--empty[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:.65rem 0 1.25rem;color:var(--pp-muted)}.pp-skel[_ngcontent-%COMP%]{max-width:40rem;margin:0 auto .85rem;border-radius:.15rem;background:color-mix(in srgb,var(--pp-ink) 7%,transparent);animation:pulse 1.2s ease-in-out infinite}.pp-skel--band[_ngcontent-%COMP%]{height:8rem;width:100%;margin-bottom:1.5rem}.pp-skel--title[_ngcontent-%COMP%]{height:2.5rem;width:55%}.pp-skel--line[_ngcontent-%COMP%]{height:1rem;width:75%}.pp-skel--block[_ngcontent-%COMP%]{height:12rem;width:100%;margin-top:1.5rem}.pp-modal[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.25rem}.pp-modal__backdrop[_ngcontent-%COMP%]{position:absolute;inset:0;border:none;background:color-mix(in srgb,var(--pp-ink) 48%,transparent);cursor:pointer}.pp-modal__panel[_ngcontent-%COMP%]{position:relative;z-index:1;width:min(100%,26rem);border-radius:.25rem;border:1px solid color-mix(in srgb,var(--pp-rule) 70%,transparent);background:var(--pp-wash);padding:1.35rem 1.4rem 1.5rem}.pp-modal__title[_ngcontent-%COMP%]{margin:0;font-size:1.1rem;font-weight:650}.pp-modal__body[_ngcontent-%COMP%]{margin:.45rem 0 .85rem;font-size:.88rem;color:var(--pp-muted);line-height:1.5}.pp-modal__error[_ngcontent-%COMP%]{margin:0 0 .75rem;font-size:.82rem;color:#9f1239}.pp-modal__label[_ngcontent-%COMP%]{display:block;margin:.65rem 0 .3rem;font-size:.68rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-muted)}.pp-modal__input[_ngcontent-%COMP%]{width:100%;border-radius:.2rem;border:1px solid color-mix(in srgb,var(--pp-rule) 80%,transparent);background:var(--pp-paper);padding:.65rem .75rem;font-family:inherit;font-size:.88rem;color:var(--pp-ink)}.pp-modal__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:4.5rem}.pp-modal__actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-end;
1gap:.55rem;margin-top:1.1rem}@media (max-width: 640px){[_nghost-%COMP%]{--pp-pad-x: max(.9rem, env(safe-area-inset-left), env(safe-area-inset-right));overflow-x:clip}.pp-folio[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr);gap:0;padding-bottom:max(2.5rem,env(safe-area-inset-bottom))}.pp-spine[_ngcontent-%COMP%]{display:none}.pp-name[_ngcontent-%COMP%]{font-size:clamp(1.75rem,8vw,2.35rem);line-height:1.12}.pp-actions[_ngcontent-%COMP%], .pp-actions--contact[_ngcontent-%COMP%]{flex-direction:column;align-items:stretch}.pp-actions[_ngcontent-%COMP%]   .pp-btn[_ngcontent-%COMP%], .pp-actions--contact[_ngcontent-%COMP%]   .pp-btn[_ngcontent-%COMP%]{width:100%;justify-content:center;min-height:2.85rem}.pp-nav[_ngcontent-%COMP%]{display:flex;width:100%;max-width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.pp-nav[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.pp-nav__link[_ngcontent-%COMP%]{flex:0 0 auto}.pp-sitebar__nav[_ngcontent-%COMP%]{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:min(70vw,22rem);-webkit-overflow-scrolling:touch;scrollbar-width:none}.pp-sitebar__nav[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}}']})};export{Ze as PublicPortfolioPageComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.