/* RK / Personal edition. Paper, cobalt, photographs. No framework. */
:root{--paper:#f2f1ec;--white:#fff;--ink:#18202a;--muted:#616770;--blue:#1754e8;--blue-dark:#123cac;--line:#d8d9d3;--display:'Oswald','Arial Narrow',sans-serif;--body:'Golos Text',system-ui,sans-serif;--mono:'IBM Plex Mono',monospace;--ease:cubic-bezier(.22,.8,.25,1)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:26px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 var(--body);-webkit-font-smoothing:antialiased}body::before{content:'';position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.038;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.76' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath d='M0 0h160v160H0z' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,summary,a{-webkit-tap-highlight-color:transparent}button{border:0}img{display:block;max-width:100%}svg{display:block}h1,h2,h3,p,figure{margin:0}ul{margin:0;padding:0;list-style:none}::selection{background:var(--blue);color:white}:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.wrap{max-width:1328px;width:calc(100% - 112px);margin-inline:auto}.mono{font:10px/1.6 var(--mono);letter-spacing:.09em}.blue{color:var(--blue)}.skip-link{position:fixed;z-index:100;top:12px;left:12px;padding:12px 20px;background:var(--ink);color:white;transform:translateY(-150%)}.skip-link:focus{transform:none}.reading-progress{position:fixed;z-index:60;top:0;left:0;right:0;height:3px;pointer-events:none}.reading-progress span{display:block;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left}
/* Header: a simple editorial masthead. */
.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line);position:relative;z-index:40}.identity{display:flex;gap:13px;align-items:center;line-height:1.3;font-size:14px;letter-spacing:.025em;font-weight:800}.identity small{display:block;font-size:10px;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:3px}.monogram{width:44px;height:44px;flex-shrink:0}.monogram rect{fill:var(--blue)}.monogram path{fill:none;stroke:white;stroke-width:2.3;stroke-linecap:square;stroke-linejoin:bevel}.desktop-nav{display:flex;align-items:center;gap:34px;font-size:12px;font-weight:550}.desktop-nav a{position:relative;padding:10px 0}.desktop-nav a::after{content:'';position:absolute;bottom:3px;left:0;right:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s}.desktop-nav a:hover::after{transform:scaleX(1)}.desktop-nav sup{font:9px var(--mono);color:var(--blue);margin-left:3px}.header-contact{display:flex;gap:26px;align-items:center;border:1px solid var(--ink);border-radius:30px;padding:9px 17px;font-size:11px;font-weight:600;transition:background .2s,color .2s}.header-contact span{font-size:20px}.header-contact:hover{background:var(--ink);color:white}.menu-toggle{display:none}.mobile-nav[hidden]{display:none}
/* First screen / poster composition */
.hero{padding-top:21px}.hero-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:9px}.hero-meta>span{display:flex;align-items:center;gap:9px}.live-dot{display:inline-block;width:6px;height:6px;background:var(--blue);border-radius:50%;box-shadow:0 0 0 4px #1754e810}.hero-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:4%;align-items:center;padding:35px 0 24px}.hero-copy{padding-block:10px 16px}.eyebrow{display:flex;align-items:center;gap:12px;font:10px var(--mono);letter-spacing:.09em}.tiny-cross{font:34px/1 var(--body);color:var(--blue)}h1{font-family:var(--display);font-weight:600;letter-spacing:-.045em;line-height:.96;margin:23px 0 24px}.first-name{display:block;font-size:clamp(95px,11.6vw,166px)}.last-name{display:block;font-size:clamp(42px,5.25vw,75px);letter-spacing:-.025em;margin-top:10px}.name-dot{color:var(--blue)}.role-line{display:flex;align-items:center;gap:17px;font-size:clamp(17px,1.75vw,24px);line-height:1.35;margin:22px 0}.role-line strong{font-weight:500}.role-bracket{font:68px/.9 var(--display);color:var(--blue);font-weight:300;transform:translateY(-2px)}.hero-intro{font-size:14px;line-height:1.85;color:var(--muted);max-width:380px}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:25px}.button{display:inline-flex;justify-content:space-between;gap:40px;align-items:center;min-height:48px;padding:12px 22px;border-radius:8px;font-size:12px;font-weight:600;transition:transform .25s var(--ease),background .25s}.button span{font-size:22px;line-height:1}.button:hover{transform:translateY(-3px)}.button-blue{color:white;background:var(--blue);box-shadow:0 8px 20px #1754e817}.button-blue:hover{background:var(--blue-dark)}.text-link{display:inline-flex;gap:14px;align-items:center;font-size:12px;font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:3px;transition:color .2s,border-color .2s}.text-link span{font-size:20px}.text-link:hover{color:var(--blue);border-color:var(--blue)}.hero-stamp{display:flex;align-items:center;gap:13px;margin-top:34px;border-top:1px solid var(--line);padding-top:20px;max-width:442px;font-size:12px;line-height:1.4}.hero-stamp small{display:block;font:9px var(--mono);color:var(--muted);margin-top:5px}.stamp-icon{font:36px/1 var(--body);color:var(--blue)}.stamp-note{margin-left:auto;font-size:8px;color:var(--muted)}
.portrait-poster{position:relative;width:100%;max-width:545px;justify-self:end;padding:0 18px 0 0}.poster-coordinates{display:block;position:relative;z-index:2;color:var(--muted);font-size:8px;text-align:right;margin-bottom:14px;padding-right:14px}.portrait-stage{position:relative;isolation:isolate;aspect-ratio: .94;background:#e7e7e2;margin:0 25px 0 0}.portrait-stage::before{content:'';position:absolute;inset:-15px -16px 24px 32px;border:1px solid #babfb8;z-index:-1}.poster-blue-block{position:absolute;top:24px;right:-25px;width:58%;height:88%;background:var(--blue);z-index:-1}.portrait-main,.portrait-color{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 47%}.portrait-main{filter:grayscale(1) contrast(1.02);mix-blend-mode:multiply}.portrait-color{clip-path:inset(24% 21% 44% 22%);transition:clip-path .75s var(--ease);z-index:2}.portrait-stage:hover .portrait-color{clip-path:inset(0)}.focus-frame{position:absolute;left:22%;right:21%;top:24%;height:32%;border:2px solid var(--blue);z-index:4;transition:opacity .3s}.focus-frame i{position:absolute;background:var(--paper);width:9px;height:9px;border:2px solid var(--blue)}.focus-frame i:nth-child(1){left:-5px;top:-5px}.focus-frame i:nth-child(2){right:-5px;top:-5px}.focus-frame i:nth-child(3){left:-5px;bottom:-5px}.focus-frame i:nth-child(4){right:-5px;bottom:-5px}.portrait-stage:hover .focus-frame{opacity:0}.portrait-cut{position:absolute;background:var(--paper);height:9px;z-index:3;pointer-events:none}.cut-one{left:-2px;right:52%;top:23%}.cut-two{left:62%;right:-2px;bottom:24%;height:11px}.poster-cross{position:absolute;z-index:5;font:80px/1 var(--body);font-weight:400;pointer-events:none}.cross-one{right:-48px;top:2%;color:var(--blue);transform:rotate(12deg)}.cross-two{left:-24px;top:62%;font-size:48px;color:var(--blue)}.vertical-caption{position:absolute;top:25%;right:-39px;writing-mode:vertical-rl;font-size:8px;color:var(--muted);z-index:5}.portrait-tag{position:absolute;bottom:5%;left:-30px;z-index:6;padding:17px 47px 17px 30px;background:rgba(248,249,250,.88);border:1px solid white;backdrop-filter:blur(16px);border-radius:11px;box-shadow:0 12px 34px #18202a14;transform:rotate(-5deg);font-size:15px;line-height:1.5}.portrait-tag strong{font-weight:650}.tag-dot{position:absolute;left:13px;top:23px;width:6px;height:6px;border-radius:50%;background:var(--blue)}.tag-arrow{position:absolute;right:15px;top:17px;color:var(--blue);font-size:24px}.portrait-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:19px;font-size:8px;color:var(--muted);padding-right:3px}.barcode{width:86px;height:23px;background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 3px,var(--ink) 3px 5px,transparent 5px 6px,var(--ink) 6px 7px,transparent 7px 10px)}.hero-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:19px 0 22px;color:var(--muted)}.hero-bottom .mono{font-size:8px}.scroll-hint{font-size:10px;display:flex;align-items:center;gap:18px}.scroll-hint span{display:grid;place-items:center;width:23px;height:23px;border:1px solid var(--line);border-radius:50%;color:var(--ink);font-size:15px}.chapter-strip{background:var(--blue);color:#fff;overflow:hidden}.chapter-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:15px 0;font:13px var(--display);letter-spacing:.09em;white-space:nowrap}.chapter-strip i{font:23px/1 var(--body);font-style:normal}
/* Shared editorial rhythm */
.section{padding-block:96px}.section-label{display:flex;justify-content:space-between;align-items:center;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-bottom:38px;font-size:9px}.section-label>span:first-child{color:var(--blue)}h2{font-size:clamp(30px,3.2vw,46px);line-height:1.18;letter-spacing:-.045em;font-weight:600}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:36px}.section-heading>p{font-size:13px;line-height:1.8;color:var(--muted);max-width:400px;padding-bottom:3px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%}.about-lead{margin-top:25px;font-size:18px;line-height:1.55;letter-spacing:-.025em}.about-lead em{font-style:normal;text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:5px;text-decoration-thickness:1px}.about-body{font-size:14px;color:var(--muted);padding-top:6px}.about-body>p+p{margin-top:16px}.about-body .text-link{margin-top:22px;color:var(--ink)}.fact-row{display:grid;grid-template-columns:1fr 1fr 1fr 1.1fr;margin-top:58px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0}.fact-row>div{display:flex;gap:20px;align-items:center;border-right:1px solid var(--line);padding:0 20px}.fact-row>div:first-child{padding-left:0}.fact-row strong{font:64px/1 var(--display);letter-spacing:-.055em;white-space:nowrap}.fact-row strong span{font:18px var(--body);color:var(--blue);margin-left:6px}.fact-row>div>span{font-size:10px;color:var(--muted);line-height:1.65}.fact-note{position:relative;padding-left:30px;font-size:13px;line-height:1.55}.fact-note>span{position:absolute;right:6px;bottom:0;color:var(--blue);font-size:28px}
/* Projects: original schematic artwork, not fake screenshots. */
.projects-section{background:#e9ecee;padding-top:70px;padding-bottom:68px}.filter-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.project-filters{display:flex;gap:8px;flex-wrap:wrap}.project-filters button{padding:9px 17px;border:1px solid #cdd1d5;border-radius:24px;font-size:11px;background:transparent;transition:background .2s,color .2s}.project-filters span{font:9px var(--mono);opacity:.7;margin-left:8px}.project-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}.project-filters button:hover{border-color:var(--blue)}.filter-note{font-size:9px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 28px}.project-card{min-width:0}.project-card[hidden]{display:none}.project-art{height:300px;position:relative;overflow:hidden;border-radius:12px;isolation:isolate}.art-label,.art-footer{position:absolute;z-index:3;font-size:8px;letter-spacing:.12em;left:22px}.art-label{top:18px}.art-footer{bottom:17px}.bot-art{background:#1955e8;color:white;background-image:linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px);background-size:30px 30px}.art-star{position:absolute;right:25px;top:70px;font-size:125px;color:#ffffff25;line-height:1}.chat-preview{position:absolute;width:272px;left:50%;top:42px;transform:translateX(-50%) rotate(-5deg);background:#f3f5ff;color:var(--ink);border-radius:14px;padding:12px 14px;box-shadow:0 20px 35px #09267655;transition:transform .5s var(--ease)}.project-card:hover .chat-preview{transform:translateX(-50%) rotate(-2deg) translateY(-4px)}.chat-top{display:flex;gap:9px;align-items:center;font-size:10px;line-height:1.35;margin-bottom:12px;border-bottom:1px solid #d9e0f0;padding-bottom:10px}.chat-top small{display:block;font-size:7px;color:#64718b;margin-top:2px}.chat-top b{margin-left:auto}.mini-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#cdddff;color:var(--blue);font-weight:700}.bubble{font-size:9px;padding:8px 11px;border-radius:11px;margin-bottom:6px;width:max-content;max-width:95%}.outgoing{background:var(--blue);color:white;margin-left:auto;border-bottom-right-radius:2px}.incoming{background:#e3e9f8;border-bottom-left-radius:2px}.ticket{padding:8px 10px;border:1px solid #d1d9ee;border-radius:8px;margin-top:8px;line-height:1.6;background:white}.ticket>span{font:7px var(--mono);color:#64718b}.ticket strong{display:flex;justify-content:space-between;font-size:11px;font-weight:600}.ticket strong i{font-style:normal;color:var(--blue)}.ticket small{font-size:8px;color:var(--blue)}.ticket small i{display:inline-block;width:4px;height:4px;background:var(--blue);border-radius:50%;margin-right:4px}.parser-art{background:#dfe5e3;background-image:radial-gradient(#9da9a850 .8px,transparent .8px);background-size:12px 12px}.parser-visual{position:absolute;inset:40px 35px}.browser-mini{position:absolute;left:7%;top:10px;width:185px;height:156px;border:1px solid #b4beb9;border-radius:9px;transform:rotate(-8deg);background:#f8f9f5;box-shadow:0 15px 25px #1f363214;overflow:hidden}.browser-mini>span{display:flex;gap:4px;padding:9px;border-bottom:1px solid #d3dcd6}.browser-mini>span i{width:4px;height:4px;background:#a1aaa6;border-radius:50%}.browser-mini>b{display:block;font:8px var(--mono);margin:12px 13px;color:#78847d}.web-lines{margin:0 13px;display:grid;gap:9px}.web-lines i{height:6px;background:#ccd6cf;width:90%;border-radius:1px}.web-lines i:first-child{width:50%;background:#a5bba9}.web-lines i:nth-child(3){width:70%}.flow-arrow{position:absolute;left:44%;top:88px;font-size:58px;color:var(--blue);z-index:3;line-height:1}.data-file{position:absolute;right:5%;top:60px;background:#182d2a;color:#e5f6ed;padding:14px 20px;border-radius:8px;transform:rotate(5deg);width:180px;box-shadow:0 15px 25px #1f363226;transition:transform .5s}.data-file>.mono{font-size:7px;color:#adbfb6}.data-file pre{font:10px/1.7 var(--mono);margin:14px 0 0}.data-file pre b{font-weight:400;color:#a8d9b3}.project-card:hover .data-file{transform:rotate(0) translateY(-5px)}.order-art{background:#dddff6;color:#25326a}.order-visual{position:absolute;inset:35px}.giant-at{position:absolute;font:230px/.95 var(--display);color:#bfc5ed;left:15%;top:-4px}.order-slip{position:absolute;left:50%;top:44px;transform:translateX(-25%) rotate(5deg);padding:22px;background:#f8f8ff;width:234px;border:1px solid white;box-shadow:0 18px 25px #19276118;border-radius:8px;transition:transform .5s}.order-slip .mono{font-size:7px;color:#6876a4}.order-slip strong{display:block;font-size:21px;font-weight:600;letter-spacing:-.04em;line-height:1.25;margin:15px 0 20px}.order-slip>div{display:flex;align-items:center;justify-content:space-between;font-size:8px;padding-top:10px;border-top:1px solid #dddff4}.order-slip>div>b{font-size:17px;color:var(--blue)}.project-card:hover .order-slip{transform:translateX(-25%) rotate(1deg) translateY(-5px)}.list-art{background:#e4e1d6}.list-visual{position:absolute;inset:40px 0}.list-background-word{position:absolute;font:110px/1 var(--display);font-weight:500;left:8%;top:40px;letter-spacing:-.055em;color:#ccc6b4;transform:rotate(-8deg)}.paper-list{position:absolute;left:50%;top:8px;background:#fffdf3;padding:24px 20px;width:243px;transform:translateX(-23%) rotate(7deg);box-shadow:0 10px 18px #332e1720;transition:transform .5s}.paper-list:before{content:'';position:absolute;top:-9px;left:32%;width:72px;height:20px;background:#1754e84d;transform:rotate(-6deg)}.paper-list>.mono{font-size:7px;color:#6d6b61}.paper-list>p{font-size:10px;margin-top:13px;display:flex;align-items:center;gap:10px}.paper-list>p>i{display:inline-flex;justify-content:center;align-items:center;width:12px;height:12px;border:1px solid #969684;font-size:9px;font-style:normal;color:var(--blue)}.paper-list s{color:#7f8076}.paper-signature{display:block;font-size:11px;font-style:italic;text-align:right;margin-top:20px;color:var(--blue)}.project-card:hover .paper-list{transform:translateX(-23%) rotate(3deg) translateY(-5px)}.project-info{padding:17px 4px 0}.project-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.project-title h3{font-size:21px;font-weight:600;letter-spacing:-.035em;line-height:1.3}.project-arrow{display:grid;place-items:center;flex-shrink:0;width:39px;height:39px;border:1px solid #c7cdd0;border-radius:50%;font-size:24px;transition:background .2s,color .2s,transform .2s}.project-arrow:hover{background:var(--blue);border-color:var(--blue);color:white;transform:rotate(8deg)}.project-info>p{font-size:12px;color:var(--muted);margin:11px 0 15px;max-width:460px;line-height:1.8}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags li{font:9px/1.4 var(--mono);padding:5px 9px;border:1px solid #c8ced1;border-radius:4px;color:#56626b}.project-info details{margin-top:18px;border-top:1px solid #cdd2d5}.project-info summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:11px 0;font-size:10px;color:#4e5965}.project-info summary::-webkit-details-marker{display:none}.project-info summary span{font-size:19px;color:var(--blue);transition:transform .2s}.project-info details[open] summary span{transform:rotate(45deg)}.project-info details p{padding:0 0 14px;font-size:12px;line-height:1.8;color:var(--muted)}.all-repositories{display:flex;justify-content:center;max-width:245px;margin:44px auto 0}
/* Skills / restrained frosted panels */
.skills-grid{display:grid;grid-template-columns:.85fr 1fr;gap:11%}.skills-heading>p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:22px}.skill-doodle{display:block;font:75px var(--mono);letter-spacing:-.1em;color:var(--blue);margin-top:45px;transform:rotate(-8deg);width:max-content}.skill-panels{display:grid;gap:15px}.skill-panel{padding:24px;background:#ffffff90;border:1px solid #fff;border-radius:12px;box-shadow:0 8px 28px #2a313809;backdrop-filter:blur(14px)}.panel-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.panel-heading .mono{font-size:8px;color:var(--muted)}.small-status{font-size:9px;padding:3px 8px;background:#e3eee8;color:#326351;border-radius:15px;white-space:nowrap}.primary-skill{display:flex;align-items:center;gap:15px;margin:26px 0 20px}.python-icon{background:var(--blue);color:white;font:25px var(--mono);border-radius:10px;display:grid;place-items:center;width:54px;height:54px}.primary-skill h3{font-size:23px;letter-spacing:-.045em;font-weight:600}.primary-skill p{font-size:11px;color:var(--muted)}.skill-pills{display:flex;flex-wrap:wrap;gap:8px}.skill-pills li{padding:7px 11px;background:#eceeeb;border-radius:5px;font-size:10px}.learning-panel{background:#e6ecfc80;border-color:#d4def6}.learning{background:#dce5ff;color:var(--blue)}.learning-list{margin-top:19px}.learning-list>div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #d4ddef;padding:11px 0;font-size:11px}.learning-list b{font-weight:550}.learning-list span{color:var(--muted);font-size:10px;text-align:right}
/* Team / one full-bleed blue chapter */
.team-section{background:var(--blue);color:white;padding:60px 0 70px;position:relative;overflow:hidden}.team-inner{position:relative}.team-section::before{content:'✳';position:absolute;font:850px/1 var(--body);color:#ffffff06;right:-170px;bottom:-400px;transform:rotate(12deg);pointer-events:none}.team-section .section-label{border-color:#ffffff40;color:#d0ddff}.team-section .section-label>span:first-child{color:white}.team-grid{display:grid;grid-template-columns:1fr .8fr;gap:13%;align-items:center}.team-kicker{display:flex;align-items:center;gap:9px;font:8px var(--mono);letter-spacing:.05em;color:#dce5ff}.team-kicker .live-dot{background:#a9e3bf;box-shadow:none}.team-grid h2{font-size:clamp(40px,4.3vw,61px);line-height:1.06;letter-spacing:-.045em;margin:22px 0}.team-grid h2>span{color:#9fbafa}.team-grid>div>p{font-size:12px;line-height:1.85;color:#dce5ff;max-width:420px}.button-paper{background:var(--paper);color:var(--blue);margin-top:27px}.team-board{padding:22px 26px;border:1px solid #ffffff55;border-radius:16px;background:#ffffff0b;backdrop-filter:blur(10px);transform:rotate(3deg)}.board-top{display:flex;justify-content:space-between;border-bottom:1px solid #ffffff40;padding-bottom:13px;font-size:9px}.team-number{display:flex;align-items:center;gap:30px;font:150px/1.3 var(--display);letter-spacing:-.07em}.team-number>span{font:10px/1.8 var(--mono);letter-spacing:.1em;color:#d1dfff}.role-chips{display:flex;flex-wrap:wrap;gap:7px}.role-chips>span{font-size:9px;border:1px solid #ffffff55;padding:6px 10px;border-radius:6px}.team-progress{margin-top:27px;border-top:1px solid #ffffff40;padding-top:17px}.team-progress>.mono{font-size:8px;color:#c4d4fb}.team-progress ol{list-style:none;margin:17px 0 3px;padding:0;display:flex;justify-content:space-between;gap:10px}.team-progress li{font-size:9px;color:#b4c9fa;line-height:1.5;flex:1}.team-progress li:before{content:'';display:block;height:3px;background:#ffffff27;margin-bottom:9px}.team-progress .done,.team-progress .current{color:white}.team-progress .done:before{background:#bfd2ff}.team-progress .current:before{background:white}
/* Personal photographs / small editorial collage */
.journal-grid{display:grid;grid-template-columns:1.15fr 1fr .52fr;gap:22px;align-items:center}.photo-card{padding:10px;background:#fff;box-shadow:0 6px 24px #27303312;text-align:left;transition:transform .35s var(--ease);min-width:0}.photo-main{transform:rotate(-3deg)}.photo-secondary{transform:rotate(3deg);margin-top:35px}.photo-card:hover{transform:rotate(0) translateY(-7px)}.photo-window{display:block;position:relative;overflow:hidden;aspect-ratio:1.36}.photo-window img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease)}.photo-main img{object-position:35% center}.photo-secondary img{object-position:43% center}.photo-card:hover img{transform:scale(1.035)}.photo-expand{position:absolute;right:9px;bottom:9px;display:grid;place-items:center;width:31px;height:31px;background:#ffffffda;backdrop-filter:blur(6px);color:var(--ink);border-radius:50%;font-size:22px}.photo-caption{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px 2px 6px;font-size:10px}.photo-caption .mono{font-size:7px;color:var(--muted)}.journal-note{padding-left:10px;align-self:center}.note-star{font:73px/1 var(--body);color:var(--blue);display:block;transform:rotate(10deg);margin-bottom:18px}.journal-note>p{font-size:16px;letter-spacing:-.035em;line-height:1.35}.journal-note>.mono{display:block;font-size:7px;margin-top:20px;color:var(--muted)}
/* Contact */
.contact-section{padding-block:15px 74px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.contact-small{font-size:11px;color:var(--muted)}.contact-grid h2{font:clamp(65px,7vw,105px)/1.04 var(--display);font-weight:500;letter-spacing:-.04em;position:relative;margin:22px 0}.contact-star{position:absolute;top:15%;right:6%;font:90px/1 var(--body);color:var(--blue);transform:rotate(-10deg)}.contact-grid>div>p{font-size:13px;color:var(--muted)}.contact-links>a,.email-row{position:relative;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--line);padding:21px 0;transition:padding .25s}.contact-links>a:hover{padding-left:8px}.contact-links .mono{font-size:8px;color:var(--muted)}.contact-links strong{font-size:25px;letter-spacing:-.045em;line-height:1.2;font-weight:500}.contact-arrow{position:absolute;right:0;top:30px;font-size:32px;color:var(--blue)}.contact-links>a:hover strong,.email-row a:hover strong{color:var(--blue)}.email-row{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.email-row>a{display:flex;flex-direction:column;gap:10px;min-width:0}.email-row strong{font-size:clamp(15px,1.55vw,22px);overflow-wrap:anywhere}.copy-email{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent;transition:background .2s}.copy-email:hover{background:white}.copy-email svg{width:17px;height:17px;fill:none;stroke:var(--blue);stroke-width:1.5}.copy-status{min-height:20px;margin-top:8px;font-size:10px!important;color:var(--blue)!important}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-block:26px 35px}.footer-wordmark{font:36px/1 var(--display);letter-spacing:-.07em;font-weight:600}.footer-wordmark span{font:29px var(--body);color:var(--blue);margin-left:7px}.site-footer>p{font-size:10px;color:var(--muted);line-height:2;text-align:center}.site-footer .mono{font-size:7px;letter-spacing:.08em}.back-top{font-size:11px;display:flex;align-items:center;gap:19px}.back-top span{font-size:23px;color:var(--blue)}
/* Glass dock inspired by desktop UI, real navigation rather than ornament. */
.floating-dock{position:fixed;z-index:50;left:50%;bottom:20px;display:flex;gap:6px;align-items:center;padding:8px;border:1px solid #ffffffd9;border-radius:18px;background:#f9faf9ce;backdrop-filter:blur(20px) saturate(1.1);box-shadow:0 8px 30px #19263420;transform:translate(-50%,110px);opacity:0;visibility:hidden;transition:transform .4s var(--ease),opacity .3s,visibility .3s}.floating-dock.is-visible{transform:translate(-50%,0);opacity:1;visibility:visible}.floating-dock a{display:grid;place-items:center;width:41px;height:40px;border-radius:11px;transition:background .2s,transform .2s;color:#5f6770}.floating-dock a:hover{background:#e2e7f2;transform:translateY(-3px)}.floating-dock a.is-current{background:#dce6ff;color:var(--blue)}.floating-dock a svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linejoin:round}.floating-dock>span{width:1px;height:22px;background:#d0d3da;margin:0 3px}.floating-dock .dock-contact{background:var(--blue);color:white}.floating-dock .dock-contact:hover,.floating-dock .dock-contact.is-current{background:var(--blue-dark);color:white}.photo-dialog{width:min(1000px,92vw);max-height:90dvh;border:0;background:var(--paper);padding:18px;border-radius:12px;color:var(--ink);box-shadow:0 30px 90px #0005}.photo-dialog::backdrop{background:#101c32b5;backdrop-filter:blur(8px)}.dialog-close{display:flex;gap:20px;align-items:center;margin:0 0 14px auto;border-radius:6px;padding:5px 10px;background:transparent;font-size:11px;min-height:36px}.dialog-close span{font-size:25px;line-height:1}.dialog-close:hover{background:#e0e3ea}.photo-dialog img{width:100%;max-height:70dvh;object-fit:contain;background:#121923;border-radius:5px}.photo-dialog p{font:10px var(--mono);margin:15px 0 4px;line-height:1.6}body.modal-open{overflow:hidden}
/* Progressive motion: content is visible without JS or a working observer. */
@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.hero-copy{animation:arrive .8s var(--ease) both}.portrait-poster{animation:arrive 1s var(--ease) .12s both}.section-label,.project-card{scroll-margin-top:25px}.just-revealed{animation:arrive .65s var(--ease) both}
@media(min-width:1600px){.hero-grid{padding-top:50px;padding-bottom:42px}.portrait-stage{aspect-ratio:.97}.hero-actions{margin-top:32px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero-grid{gap:5%;grid-template-columns:1.1fr 1fr}.first-name{font-size:118px}.last-name{font-size:52px}.hero-stamp{gap:10px}.stamp-note{display:none}.portrait-tag{font-size:12px;padding:13px 38px 13px 25px}.portrait-poster{padding-right:10px}.cross-one{font-size:65px;right:-38px}.fact-row{grid-template-columns:repeat(3,1fr)}.fact-row>div:last-of-type{border:0}.fact-note{display:none}.journal-grid{grid-template-columns:1fr 1fr}.journal-note{display:flex;align-items:center;justify-content:center;gap:24px;grid-column:1/-1;padding:18px 0 0}.journal-note>p{font-size:15px}.journal-note>p br{display:none}.journal-note .note-star{font-size:42px;margin:0}.journal-note>.mono{margin:0}.team-grid{gap:7%}.team-number{font-size:115px}.skills-grid{gap:6%}.contact-star{font-size:70px;right:0}.parser-visual{left:10px;right:10px}.order-slip{width:205px}.project-art{height:280px}}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}.site-header{height:82px;gap:12px}.desktop-nav{gap:17px;font-size:11px}.header-contact{display:none}.hero-grid{padding-top:30px;gap:30px;grid-template-columns:1fr 1fr}.hero-meta{font-size:8px}.first-name{font-size:98px}.last-name{font-size:42px}.hero-copy .eyebrow{font-size:8px;gap:6px}.tiny-cross{font-size:28px}.role-line{font-size:17px;gap:10px;margin:20px 0}.role-bracket{font-size:53px}.hero-intro{font-size:12px}.hero-actions{gap:16px;flex-wrap:wrap}.button{padding:12px 15px;gap:20px;font-size:11px}.hero-actions .text-link{font-size:10px}.hero-stamp{margin-top:22px;padding-top:16px;font-size:10px}.hero-stamp small{font-size:7px}.portrait-stage{aspect-ratio:.77;margin-right:10px}.portrait-main,.portrait-color{object-position:50% center}.poster-coordinates{font-size:6px}.portrait-tag{left:-17px;bottom:2%}.vertical-caption{right:-22px;font-size:6px}.poster-blue-block{right:-10px}.portrait-bottom{font-size:6px;gap:5px}.barcode{width:52px;height:17px}.cross-one{font-size:49px;right:-22px}.cross-two{font-size:32px;left:-18px}.edition{display:none}.hero-bottom .mono{font-size:7px}.chapter-strip .wrap{gap:18px;font-size:11px}.chapter-strip .wrap>span:last-of-type,.chapter-strip .wrap>i:last-of-type{display:none}.section{padding-block:64px}.section-label{font-size:8px;margin-bottom:29px}.section-heading>p{font-size:11px;max-width:275px}.about-grid{gap:6%}.about-lead{font-size:15px}.about-body{font-size:12px}.fact-row>div{padding:0 14px;gap:13px}.fact-row strong{font-size:50px}.fact-row strong span{font-size:13px}.fact-row>div>span{font-size:9px}.project-grid{gap:33px 22px}.project-art{height:254px}.chat-preview{width:225px;top:40px}.chat-top{margin-bottom:7px;padding-bottom:7px}.ticket{margin-top:5px}.bubble{padding:6px 9px}.art-label,.art-footer{left:16px;font-size:7px}.browser-mini{left:0;width:156px;height:143px}.data-file{width:146px;padding:14px;right:0;top:67px}.data-file pre{font-size:9px}.flow-arrow{font-size:40px;left:40%;top:96px}.order-slip{left:36%;width:190px;top:27px;padding:18px}.order-slip strong{font-size:20px}.giant-at{font-size:180px;left:0;top:10px}.paper-list{left:35%;width:198px;padding:20px 16px}.paper-list>p{font-size:9px}.project-title h3{font-size:19px}.project-info>p{font-size:11px}.skills-grid{grid-template-columns:.8fr 1fr}.skill-panel{padding:18px}.panel-heading{flex-wrap:wrap;gap:7px}.team-grid{grid-template-columns:1fr .9fr;gap:5%}.team-board{padding:18px}.team-number{font-size:95px;gap:16px}.team-number>span{font-size:8px}.team-grid h2{font-size:42px}.team-grid>div>p{font-size:11px}.team-kicker{font-size:7px}.role-chips>span{font-size:8px;padding:5px 7px}.team-progress ol{gap:6px}.team-progress li{font-size:8px}.contact-grid{gap:8%}.contact-small{font-size:10px}.contact-grid h2{font-size:72px}.contact-star{font-size:55px;right:0}.contact-links strong{font-size:22px}.email-row strong{font-size:15px}.contact-grid>div>p{font-size:11px}}
@media(max-width:600px){html{scroll-padding-top:18px}.wrap{width:calc(100% - 36px)}.site-header{height:76px}.identity{font-size:12px;gap:10px}.identity small{font-size:9px}.monogram{width:37px;height:37px}.desktop-nav{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;background:transparent;border:1px solid var(--line);border-radius:50%}.menu-toggle>span{width:16px;height:1.5px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(3.25px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-3.25px) rotate(-45deg)}.mobile-nav{position:absolute;top:calc(100% + 8px);left:0;right:0;padding:16px 22px;background:#f8f8f4f5;border:1px solid white;border-radius:12px;backdrop-filter:blur(20px);box-shadow:0 14px 25px #151e331a}.mobile-nav a{display:flex;align-items:center;justify-content:space-between;font-size:14px;padding:12px 0;border-bottom:1px solid var(--line)}.mobile-nav a:last-child{border:0}.mobile-nav a>span{font:10px var(--mono);color:var(--blue)}.hero{padding-top:17px}.hero-meta{font-size:7px;letter-spacing:.025em}.hero-meta>span{gap:6px}.hero-grid{grid-template-columns:1fr;padding-top:23px;gap:36px;padding-bottom:27px}.hero-copy{padding:0}.hero-copy .eyebrow{font-size:8px;letter-spacing:.085em}.first-name{font-size:clamp(108px,31vw,155px)}.last-name{font-size:clamp(45px,13.4vw,67px);margin-top:7px}h1{margin:19px 0 18px}.role-line{font-size:21px;margin:20px 0;gap:15px}.role-bracket{font-size:59px}.hero-intro{font-size:13px;line-height:1.8}.hero-actions{gap:25px;margin-top:22px}.button{font-size:12px;min-height:48px;padding:12px 18px;gap:23px}.hero-actions .text-link{font-size:11px}.hero-stamp{margin-top:27px;max-width:100%;font-size:11px}.hero-stamp small{font-size:8px}.stamp-note{display:block;font-size:7px}.portrait-poster{width:88%;justify-self:center;max-width:400px;padding-right:5px}.poster-coordinates{font-size:6px}.portrait-stage{aspect-ratio:.91;margin-right:12px}.poster-blue-block{right:-17px}.portrait-tag{font-size:13px;left:-16px;bottom:5%;padding:15px 38px 15px 27px}.cross-one{font-size:57px;right:-31px}.cross-two{font-size:38px;left:-21px}.vertical-caption{right:-29px;font-size:6px}.portrait-bottom{font-size:6px}.barcode{width:61px;height:18px}.hero-bottom{padding:16px 0 18px;gap:10px}.hero-bottom>.mono{max-width:130px;font-size:6px;line-height:1.6}.scroll-hint{font-size:9px;gap:9px}.chapter-strip .wrap{width:calc(100% - 32px);font-size:10px;padding:12px 0;gap:12px}.chapter-strip .wrap>span:nth-of-type(3),.chapter-strip .wrap>i:nth-of-type(3){display:none}.chapter-strip i{font-size:20px}.section{padding-block:55px}.section-label{font-size:7px;letter-spacing:.055em;margin-bottom:25px;padding-top:11px;gap:10px}.section-label>span:last-child{text-align:right}h2{font-size:32px;letter-spacing:-.045em}.about-grid{grid-template-columns:1fr;gap:26px}.about-lead{font-size:17px;margin-top:21px}.about-body{font-size:13px;padding:0}.about-body .text-link{font-size:11px;margin-top:17px}.fact-row{grid-template-columns:repeat(3,1fr);padding:22px 0;margin-top:32px}.fact-row>div{display:block;padding:0 12px}.fact-row strong{display:block;font-size:45px;margin-bottom:10px}.fact-row strong span{font-size:12px;margin-left:4px}.fact-row>div>span{font-size:8px}.projects-section{padding-block:48px}.section-heading{display:block;margin-bottom:27px}.section-heading>p{max-width:100%;font-size:12px;margin-top:18px}.filter-bar{gap:7px;align-items:center;margin-bottom:23px}.project-filters{gap:5px}.project-filters button{padding:8px 11px;font-size:10px}.project-filters span{font-size:8px;margin-left:4px}.filter-note{display:none}.project-grid{grid-template-columns:1fr;gap:31px}.project-art{height:280px;border-radius:10px}.art-label,.art-footer{font-size:7px;left:18px}.chat-preview{width:245px;top:43px}.chat-top{margin-bottom:10px;padding-bottom:9px}.bubble{padding:7px 10px}.ticket{padding:9px 12px}.parser-visual{left:20px;right:20px}.browser-mini{width:163px;top:16px}.data-file{width:164px;top:72px}.data-file pre{font-size:10px}.order-slip{left:42%;width:211px;top:30px;padding:20px}.giant-at{font-size:200px;left:0}.paper-list{left:40%;width:219px;top:14px;padding:23px 16px}.paper-list>p{font-size:10px}.list-background-word{font-size:99px;left:6%;top:60px}.project-info{padding:15px 2px 0}.project-title h3{font-size:21px}.project-info>p{font-size:12px}.project-info details p{font-size:12px}.project-info summary{font-size:11px;min-height:44px}.project-arrow{width:42px;height:42px}.all-repositories{font-size:11px;margin-top:30px}.skills-grid{grid-template-columns:1fr;gap:29px}.skills-heading{position:relative}.skills-heading>p{font-size:12px;margin-top:17px}.skill-doodle{display:none}.skill-panel{padding:21px}.panel-heading .mono{font-size:8px}.panel-heading{flex-wrap:nowrap}.skill-pills li{font-size:10px}.learning-list>div{font-size:12px}.learning-list span{font-size:10px}.team-section{padding:43px 0 57px}.team-grid{grid-template-columns:1fr;gap:36px}.team-grid h2{font-size:48px;margin:20px 0}.team-grid>div>p{font-size:13px}.team-kicker{font-size:7px}.team-board{transform:rotate(2deg);width:93%;justify-self:center;padding:23px}.team-number{font-size:120px;gap:30px}.team-number>span{font-size:10px}.role-chips>span{font-size:10px}.team-progress li{font-size:9px}.team-section::before{font-size:650px;bottom:-190px;right:-240px}.journal-grid{gap:27px;grid-template-columns:1fr}.photo-main{width:94%;justify-self:start}.photo-secondary{width:91%;justify-self:end;margin-top:0}.photo-caption{font-size:11px;padding:14px 4px 7px}.photo-caption .mono{font-size:7px}.photo-window{aspect-ratio:1.4}.photo-expand{height:37px;width:37px}.journal-note{gap:18px;justify-content:flex-start;padding:5px 12px}.journal-note>p{font-size:14px}.journal-note>.mono{display:none}.contact-section{padding-block:0 43px}.contact-grid{grid-template-columns:1fr;gap:28px}.contact-grid h2{font-size:86px;line-height:1.03;margin:20px 0}.contact-star{right:12%;top:21%;font-size:67px}.contact-small{font-size:10px}.contact-grid>div>p{font-size:12px}.contact-links>a,.email-row{padding:18px 0;gap:7px}.contact-links strong{font-size:25px}.email-row strong{font-size:19px}.copy-email{width:44px;height:44px}.site-footer{flex-wrap:wrap;gap:18px;padding:25px 0 97px}.site-footer>p{order:3;width:100%;text-align:left;font-size:10px}.site-footer .mono{font-size:6px}.back-top{font-size:11px}.floating-dock{bottom:13px;border-radius:17px}.photo-dialog{padding:12px;width:calc(100% - 24px)}.photo-dialog p{font-size:9px}}
@media(max-width:360px){.wrap{width:calc(100% - 28px)}.first-name{font-size:105px}.last-name{font-size:44px}.hero-actions{gap:18px}.stamp-note{display:none}.project-art{height:253px}.order-slip{width:190px;left:38%}.paper-list{width:192px;left:37%}.contact-grid h2{font-size:76px}.contact-star{right:6%}.email-row strong{font-size:17px}.fact-row>div{padding:0 8px}.fact-row strong{font-size:40px}.desktop-break{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.portrait-color{clip-path:inset(24% 21% 44% 22%)!important}.portrait-stage:hover .focus-frame{opacity:1}.photo-card:hover img{transform:none}.button:hover{transform:none}}
@media print{body{background:white;font-size:11pt}body::before,.reading-progress,.floating-dock,.menu-toggle,.mobile-nav,.project-filters,.filter-note,.photo-dialog,.copy-email{display:none!important}.wrap{width:100%;max-width:none}.site-header{height:65px}.section{padding:30px 0}.hero-grid{padding:20px 0}.first-name{font-size:80px}.last-name{font-size:38px}.hero-intro{font-size:12px}.project-grid{grid-template-columns:1fr 1fr}.project-card{break-inside:avoid}.project-card[hidden]{display:block!important}.project-art{height:220px}.team-section{background:#eee;color:#111}.team-grid>div>p,.team-kicker,.team-number>span,.team-progress li{color:#333}.site-footer{padding-bottom:15px}.portrait-tag{backdrop-filter:none}.desktop-nav{display:none}}
