/* An editorial desk, with a small imagined device for exploring the work. */
:root{color-scheme:light;--paper:#ebe5d9;--ink:#312c26;--muted:#716a60;--accent:#bf6849;--line:#cfc5b6;--panel:#f6f0e5;--soft:#e3d8c7;--shadow:0 28px 55px rgba(51,40,28,.16)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;min-width:0;background:radial-gradient(ellipse at 15% 7%,rgba(255,251,236,.55),transparent 40%),radial-gradient(ellipse at 90% 85%,rgba(185,141,106,.12),transparent 55%),var(--paper);color:var(--ink);font:400 15px/1.65 'DM Sans',sans-serif}body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.11;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.17'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Space Grotesk',sans-serif}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}::selection{background:#d7a087;color:#251e19}
.site-shell{min-height:100vh;display:flex;flex-direction:column}.skip-link{position:absolute;left:18px;top:-90px;z-index:30;background:var(--ink);color:var(--panel);padding:10px 18px;border-radius:4px}.skip-link:focus{top:12px}.site-header{width:min(1060px,calc(100% - 64px));margin:0 auto;min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{font:600 19px/1 'Space Grotesk',sans-serif;letter-spacing:-.065em;white-space:nowrap}.nav-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:clamp(14px,2.5vw,32px)}.nav-links a,.theme-toggle{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);transition:color .2s ease}.nav-links a:hover,.theme-toggle:hover,.text-link:hover{color:var(--accent)}.theme-toggle{border:1px solid var(--line);background:transparent;color:var(--ink);padding:7px 12px;border-radius:99px}.theme-toggle:not(html.js *){display:none}html:not(.js) .theme-toggle,html:not(.js) #copy-email,html:not(.js) .project-filters{display:none!important}
.experience{width:min(920px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:318px minmax(0,1fr);gap:clamp(45px,7vw,96px);align-items:center;padding:66px 0 72px;min-height:730px}.phone-column{min-width:0;display:flex;flex-direction:column;align-items:center}.phone{width:318px;max-width:100%;height:650px;position:relative;border:6px solid #252724;border-radius:48px;padding:5px;background:linear-gradient(125deg,#74726c,#1f211f 20%,#20221f 80%,#77746d);box-shadow:inset 0 0 0 1px #b9b7ac,inset 0 0 0 3px #272826,7px 17px 20px rgba(44,35,27,.11),18px 33px 52px rgba(44,35,27,.2);isolation:isolate}.phone::before{content:'';position:absolute;right:-8px;top:142px;width:2px;height:66px;background:#444440;border-radius:0 3px 3px 0}.phone-screen{position:relative;width:100%;height:100%;border-radius:37px;overflow:hidden;background:radial-gradient(ellipse at 10% 86%,#8b9c8a 0%,transparent 55%),radial-gradient(ellipse at 87% 12%,#f1d0b3 0%,transparent 53%),linear-gradient(150deg,#ccaa91,#cec1aa 52%,#8e9e8a);color:#2d302b}.phone-screen::before{content:'';position:absolute;width:110%;height:46%;left:-15%;bottom:-12%;background:linear-gradient(115deg,rgba(77,102,83,.43),rgba(230,222,191,.35));border-radius:50% 70% 0 0;transform:rotate(-16deg);pointer-events:none}.phone-status{height:40px;padding:8px 19px 0;display:flex;align-items:flex-start;justify-content:space-between;position:relative;z-index:5;font:600 12px 'DM Sans',sans-serif}.dynamic-island{position:absolute;width:90px;height:25px;top:7px;left:50%;transform:translateX(-50%);background:#171817;border-radius:99px;box-shadow:inset 0 -1px 2px #444;pointer-events:none}
.phone-home-screen{position:absolute;inset:40px 0 0;padding:23px 17px 67px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;scrollbar-width:none;transition:opacity .22s ease,transform .22s ease}.phone-home-screen::-webkit-scrollbar{display:none}.phone.is-open .phone-home-screen{opacity:.32;transform:scale(.94);pointer-events:none}.profile-widget,.motto-widget,.projects-widget{background:rgba(251,248,234,.77);border:1px solid rgba(255,255,255,.47);border-radius:20px;padding:13px;box-shadow:0 5px 19px rgba(70,63,49,.08);backdrop-filter:blur(12px)}.profile-widget{display:flex;align-items:center;gap:11px;min-height:83px}.profile-widget p,.motto-widget p,.projects-widget p{margin:0}.profile-widget h2,.profile-widget h3{font-size:17px;line-height:1.1;letter-spacing:-.045em;margin:0 0 4px}.profile-widget small,.motto-widget small,.projects-widget small{display:block;font-size:10px;line-height:1.4;color:#615d50}.avatar-frame{width:44px;height:44px;flex:none;border-radius:13px;overflow:hidden;background:#c89d80;border:1px solid rgba(57,47,35,.13)}.avatar-frame img{width:100%;height:100%;object-fit:cover}.motto-widget{min-height:76px;background:rgba(231,219,196,.76)}.motto-widget strong,.motto-widget h3{display:block;font:500 17px/1.25 'Space Grotesk',sans-serif;letter-spacing:-.045em;margin:3px 0 0}.projects-widget{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(206,222,202,.79)}.projects-widget strong{font:500 32px/1 'Space Grotesk',sans-serif;letter-spacing:-.08em}.app-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px 3px;margin-top:auto}.app-launcher{min-width:0;min-height:68px;display:flex;align-items:center;flex-direction:column;gap:5px;text-align:center}.app-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#fff;background:#705f51;box-shadow:0 3px 8px rgba(51,40,28,.18),inset 0 1px 1px rgba(255,255,255,.36);transition:transform .2s ease}.app-launcher:hover .app-icon,.phone-dock a:hover{transform:translateY(-3px)}.app-icon svg{width:24px;height:24px;stroke-width:1.7}.app-label{font:500 9px/1.15 'DM Sans',sans-serif;color:#272923;text-shadow:0 1px 2px rgba(255,255,255,.6);overflow-wrap:anywhere}.icon-about{background:#aa755b}.icon-stack{background:#687b69}.icon-canteen{background:#c87957}.icon-workout{background:#8c9774}.icon-pos{background:#797f83}.icon-inventory{background:#b08c58}.icon-ohman{background:#70666f}.icon-contact{background:#8e665d}.phone-dock{position:absolute;bottom:23px;left:14px;right:14px;min-height:57px;border-radius:18px;background:rgba(246,239,220,.53);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-evenly;z-index:2}.phone-dock a{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#354337;transition:transform .2s ease}.phone-dock svg{width:24px;height:24px}.phone-hint{color:var(--muted);font-size:11px;letter-spacing:.02em;margin:15px 0 0;text-align:center}.home-indicator{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);z-index:6;border:0;border-radius:99px;background:#252923;width:104px;height:5px;padding:0}.home-indicator:hover{background:var(--accent)}
.phone-sheet{position:absolute;inset:40px 0 0;z-index:3;display:flex;flex-direction:column;background:#f5f0e5;border-radius:23px 23px 35px 35px;box-shadow:0 -11px 30px rgba(49,44,38,.14);transform:translateY(105%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .22s ease,opacity .22s ease,visibility .22s ease}.phone.is-open .phone-sheet,.phone-sheet.is-open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}.sheet-toolbar{height:53px;flex:none;display:flex;align-items:center;gap:12px;padding:8px 15px;border-bottom:1px solid rgba(70,55,41,.1)}.sheet-toolbar button{min-width:40px;min-height:40px;border:0;background:transparent;color:var(--accent);font-size:13px;font-weight:700}.sheet-toolbar strong,.sheet-toolbar #phone-sheet-title{font:600 13px 'Space Grotesk',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-body{min-width:0;overflow:auto;overscroll-behavior:contain;padding:19px 19px 48px;scrollbar-color:#b8aa94 transparent}.sheet-body :where(h1,h2,h3,p,li,a){overflow-wrap:anywhere}.screen-kicker{display:block;font-size:10px;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:var(--accent);margin-bottom:7px}.screen-title{font-size:26px;font-weight:500;line-height:1.1;letter-spacing:-.055em;margin:0 0 11px}.screen-copy{font-size:12px;line-height:1.6;color:#6a6257;margin:0 0 16px}.screen-card{background:#e9e2d5;border-radius:16px;padding:15px;margin:12px 0;font-size:12px;line-height:1.5}.screen-card p:last-child{margin-bottom:0}.screen-links{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.screen-links a,.screen-project-list a{display:flex;align-items:center;min-height:42px;padding:10px 13px;border-radius:11px;background:#e6dcd0;font-size:12px;font-weight:600;line-height:1.3;transition:background .2s ease}.screen-links a:hover,.screen-project-list a:hover{background:#d7c6b4}.screen-project-list{display:grid;gap:7px;margin:14px 0}.screen-project-list a{justify-content:space-between;gap:10px}.screen-project-list a::after{content:'↗';color:var(--accent)}.screen-hero{position:relative;min-height:148px;overflow:hidden;display:grid;place-items:center;margin:0 0 18px;border-radius:17px;background:#ead0b9;color:#493f36}.screen-hero::before{content:'';position:absolute;width:180px;height:180px;left:-65px;bottom:-100px;border:1px solid currentColor;border-radius:50%;opacity:.23}.hero-canteen{background:linear-gradient(130deg,#efcaa8,#d8906c)}.hero-workout{background:linear-gradient(135deg,#d5ddba,#98ac8c)}.hero-pos{background:linear-gradient(135deg,#d4d9d4,#9caeaa)}.hero-inventory{background:linear-gradient(135deg,#e7d9b9,#c4a976)}.hero-ohman{background:linear-gradient(135deg,#d8c6c2,#af9ba7)}.screen-hero :where(.mini-receipt,.progress-ring,.mini-terminal,.mini-boxes){position:relative;z-index:1}.mini-receipt{width:106px;min-height:109px;padding:12px;background:#fff8e9;box-shadow:7px 8px 0 rgba(68,45,37,.12);transform:rotate(-7deg);font-size:10px}.mini-receipt::after{content:'· · · · · · · · ·';display:block;border-top:1px dashed #ba9d88;margin-top:13px;padding-top:8px;color:#ad765d}.progress-ring{width:94px;height:94px;border-radius:50%;background:conic-gradient(#6e8d78 0 72%,rgba(255,255,255,.56) 72% 100%);display:grid;place-items:center;box-shadow:0 10px 16px rgba(45,54,39,.12)}.progress-ring::before{content:'';position:absolute;inset:12px;border-radius:50%;background:#dce4cf}.progress-ring>*{position:relative;z-index:1}.mini-terminal{width:150px;min-height:90px;padding:12px;border-radius:10px;background:#485851;color:#eff0dc;box-shadow:8px 9px 0 rgba(55,67,59,.14);font:11px/1.6 monospace}.mini-terminal::before{content:'●  ●  ●';display:block;letter-spacing:2px;color:#bdc8b8;border-bottom:1px solid #81928b;margin-bottom:8px}.mini-boxes{display:flex;gap:6px;transform:rotate(-10deg)}.mini-boxes::before,.mini-boxes::after{content:'';width:55px;height:55px;border:2px solid #8d7456;background:#d8bd8f;box-shadow:6px 7px 0 rgba(92,68,44,.14)}
.detail-column{min-width:0}.detail-panel{max-width:490px}.detail-panel:not([hidden]){animation:detail-enter .24s ease both}@keyframes detail-enter{from{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:none}}.eyebrow{display:block;color:var(--accent);font-size:11px;letter-spacing:.18em;font-weight:700;text-transform:uppercase;margin:0 0 20px}.detail-title{font-size:clamp(42px,4.4vw,58px);line-height:1.02;letter-spacing:-.07em;font-weight:500;margin:0 0 24px;overflow-wrap:anywhere}.detail-lede{font-size:18px;line-height:1.5;letter-spacing:-.015em;margin:0 0 18px}.detail-copy{color:var(--muted);line-height:1.8;margin:0 0 18px}.detail-actions{display:flex;align-items:center;flex-wrap:wrap;gap:13px 24px;margin-top:30px}.text-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:13px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:4px;transition:color .2s ease}.pill-link{display:inline-flex;justify-content:center;align-items:center;min-height:42px;padding:10px 17px;border:1px solid var(--ink);border-radius:99px;background:var(--ink);color:var(--paper);font-size:12px;font-weight:700;transition:background .2s ease,transform .2s ease}.pill-link:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.tag-list{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:22px 0}.tag-list li,.tag-list span{font-size:11px;border:1px solid var(--line);border-radius:99px;padding:4px 10px;color:var(--muted)}.detail-meta,.detail-footer{margin-top:28px;border-top:1px solid var(--line);padding-top:15px;font-size:12px;color:var(--muted)}.detail-meta a,.detail-footer a{text-decoration:underline;text-underline-offset:3px}.project-filters{display:flex;flex-wrap:wrap;gap:6px;margin:20px 0 12px}.project-filters button{border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--muted);padding:6px 11px;font-size:11px}.project-filters button:hover,.project-filters button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff}.project-list{margin-top:8px;border-top:1px solid var(--line)}.project-card{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding:14px 0;min-width:0}.project-number{font:500 11px 'Space Grotesk',sans-serif;color:var(--accent);flex:none}.project-info{min-width:0;flex:1}.project-info h3{font-size:17px;line-height:1.3;font-weight:500;letter-spacing:-.04em;margin:0 0 3px}.project-info p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}.project-card a:hover{color:var(--accent)}#project-count{font-size:11px;color:var(--muted)}#copy-email{border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--ink);padding:10px 14px;font-size:12px}#copy-email:hover{border-color:var(--accent);color:var(--accent)}.copy-status{font-size:11px;color:var(--muted);min-height:1.5em}.site-footer{width:min(1060px,calc(100% - 64px));margin:0 auto;min-height:68px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px 20px;color:var(--muted);font-size:11px}.site-footer p{margin:0}.site-footer a:hover{color:var(--accent)}
html[data-theme=dark]{color-scheme:dark;--paper:#29251f;--ink:#f0e8dc;--muted:#b9aea0;--accent:#de9473;--line:#51473c;--panel:#373028;--soft:#453b32;--shadow:0 28px 55px rgba(0,0,0,.27)}html[data-theme=dark] body{background:radial-gradient(ellipse at 16% 10%,rgba(126,91,70,.13),transparent 50%),#29251f}html[data-theme=dark] .phone{border-color:#171917}html[data-theme=dark] .phone-screen{background:radial-gradient(ellipse at 10% 86%,#657b6e,transparent 57%),radial-gradient(ellipse at 87% 12%,#a58070,transparent 55%),linear-gradient(150deg,#877866,#9b8b78 55%,#54665a)}html[data-theme=dark] .profile-widget,html[data-theme=dark] .motto-widget,html[data-theme=dark] .projects-widget{background:rgba(52,52,45,.79);border-color:rgba(238,223,196,.13);color:#f1e9d9}html[data-theme=dark] .projects-widget{background:rgba(61,77,65,.87)}html[data-theme=dark] .profile-widget small,html[data-theme=dark] .motto-widget small,html[data-theme=dark] .projects-widget small{color:#cabfaf}html[data-theme=dark] .app-label{color:#f6eee3;text-shadow:0 1px 2px #25211c}html[data-theme=dark] .phone-dock{background:rgba(48,51,44,.68)}html[data-theme=dark] .phone-dock a{color:#e6e7cf}html[data-theme=dark] .phone-sheet{background:#322d27;color:#f0e8dc}html[data-theme=dark] .sheet-toolbar{border-color:#50483e}html[data-theme=dark] .screen-copy{color:#c2b7aa}html[data-theme=dark] .screen-card,html[data-theme=dark] .screen-links a,html[data-theme=dark] .screen-project-list a{background:#443b32;color:#f0e8dc}html[data-theme=dark] .screen-links a:hover,html[data-theme=dark] .screen-project-list a:hover{background:#594739}html[data-theme=dark] .pill-link{background:#e7dbca;color:#29251f;border-color:#e7dbca}html[data-theme=dark] .pill-link:hover{background:var(--accent);border-color:var(--accent)}
@media(max-width:760px){.site-header,.site-footer{width:calc(100% - 36px)}.site-header{min-height:72px;align-items:flex-start;padding:18px 0;flex-wrap:wrap;gap:12px}.brand{padding-top:7px}.nav-links{gap:9px 17px}.experience{width:min(520px,calc(100% - 36px));display:flex;flex-direction:column;align-items:stretch;gap:42px;min-height:0;padding:38px 0 65px}.phone-column{width:100%}.detail-column{width:100%}.detail-panel{max-width:none}.detail-title{font-size:clamp(42px,8vw,54px)}.site-footer{padding:18px 0;align-items:flex-start;flex-wrap:wrap}}
@media(max-width:400px){.site-header{gap:12px 8px}.nav-links{justify-content:flex-start;gap:9px 13px}.nav-links a,.theme-toggle{font-size:11px}.phone{width:min(318px,100%)}.experience{padding-top:28px}.detail-title{font-size:42px}}
@media(max-width:340px){.site-header,.site-footer,.experience{width:calc(100% - 26px)}.phone{height:620px}.phone-home-screen{padding-inline:12px}.app-grid{gap:9px 0}.app-icon{width:41px;height:41px}.profile-widget,.motto-widget,.projects-widget{padding:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* With scripting unavailable, use ordinary document links and show every panel. */
html:not(.js){scroll-behavior:auto}
html:not(.js) .phone-column{display:none}html:not(.js) .experience{display:block;min-height:0;width:min(720px,calc(100% - 36px))}html:not(.js) .detail-panel{max-width:none;padding:34px 0;border-bottom:1px solid var(--line);animation:none}html:not(.js) .detail-panel:first-child{padding-top:0}
/* Concrete markup refinements: the navigation is one row; the home widgets are type-led. */
.phone.is-open .phone-sheet{animation:sheet-enter .24s ease-out both}
@keyframes sheet-enter{from{opacity:0;transform:translateY(12%)}to{opacity:1;transform:translateY(0)}}
.site-header nav{width:100%;display:flex;align-items:center;gap:clamp(17px,3vw,42px)}.site-header nav .nav-links{margin-left:auto}.brand span{color:var(--accent)}.detail-title em{font-style:normal;color:var(--accent)}.profile-widget .screen-kicker{font-size:8px;line-height:1.2;margin-bottom:3px;color:#795a48}.profile-widget strong{display:block;font:600 17px/1.12 'Space Grotesk',sans-serif;letter-spacing:-.05em}.profile-widget div>span:last-child{display:block;font-size:9px;color:#645e53;line-height:1.4;margin-top:4px}.motto-widget{display:flex;align-items:flex-start;gap:9px;min-height:75px}.motto-widget>span{font-size:21px;color:#a4694f;line-height:1}.motto-widget p{font:500 17px/1.23 'Space Grotesk',sans-serif;letter-spacing:-.04em}.projects-widget{display:block;min-height:85px;padding:12px 14px}.projects-widget>span{display:block;font-size:9px;line-height:1.2;letter-spacing:.14em;font-weight:700;color:#596a56;margin-bottom:5px}.projects-widget strong{display:block;font:500 19px/1.05 'Space Grotesk',sans-serif;letter-spacing:-.055em}.projects-widget strong span{font-size:16px;color:#547262}.app-grid{margin-top:1px}.phone-dock a{font:600 18px 'Space Grotesk',sans-serif}.phone-dock a:first-child{font-size:13px}.home-indicator{background:transparent;width:120px;height:24px;bottom:0}.home-indicator span{display:block;width:104px;height:5px;border-radius:99px;background:#262722;margin:9px auto}.home-indicator:hover span{background:var(--accent)}.project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}.project-info>span{font-size:11px;color:var(--accent)}.project-card{flex-wrap:wrap;gap:6px 13px}.project-card .project-number{width:100%}.project-card>.text-link{font-size:11px;white-space:nowrap}.project-card>.detail-actions{margin:0;gap:8px 12px}.project-card>.detail-actions .text-link{font-size:11px}.detail-panel h3:not(.project-info h3){font-size:15px;font-weight:500;margin:19px 0 7px}.detail-panel .tag-list{margin-top:9px}.screen-project-list a::after{content:none}html[data-theme=dark] .profile-widget .screen-kicker{color:#e4b391}html[data-theme=dark] .profile-widget div>span:last-child{color:#cfc4b4}html[data-theme=dark] .projects-widget>span{color:#c9d8ba}html[data-theme=dark] .projects-widget strong span{color:#c4d9c5}html[data-theme=dark] .home-indicator span{background:#e6ddcf}
@media(max-width:760px){.site-header nav{flex-wrap:wrap;gap:12px 18px}.site-header nav .nav-links{margin-left:auto}.site-header nav .theme-toggle{flex:none}.project-card>.detail-actions{flex-wrap:wrap}}
@media(max-width:460px){.site-header nav .nav-links{order:3;width:100%;margin:0;justify-content:flex-start}.site-header nav .theme-toggle{margin-left:auto}.project-card>.text-link{margin-left:0}}
#project-filters{display:flex;flex-wrap:wrap;gap:6px;margin:20px 0 12px}#project-filters button{border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--muted);padding:6px 11px;font-size:11px;min-height:36px}#project-filters button:hover,#project-filters button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff}#copy-status{display:block;font-size:11px;color:var(--muted);min-height:1.5em;margin-top:7px}html:not(.js) #project-filters{display:none!important}
