@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}:root{--ink:#14252d;--ink-soft:#273c46;--muted:#56636a;--paper:#f6f3ec;--white:#fffefa;--blue:#214be8;--red:#c74931;--line:#cdd0cb;--line-light:#50616b;--focus:var(--blue);--font-sans:var(--font-inter),Arial,sans-serif;--font-mono:ui-monospace,"SFMono-Regular",Consolas,monospace;--shell:min(1320px,calc(100% - 96px))}*,:after,:before{box-sizing:border-box}html{scroll-behavior:auto}body,html{background:var(--paper)}body{margin:0;min-width:320px;color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}[hidden]{display:none!important}button,input,select,textarea{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button{border:0}img{display:block;max-width:100%;height:auto}svg{flex-shrink:0}figure,h1,h2,h3,h4,p,ul{margin:0}ul{padding-left:1.1em}:focus-visible{outline:3px solid var(--focus);outline-offset:5px}::selection{background:var(--blue);color:white}#education,#main,#skills,article[id],footer[id],section[id]{scroll-margin-top:100px}#main{outline:none}.page-shell{width:var(--shell);margin-inline:auto}.section{padding-block:100px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:200;top:-80px;left:20px;padding:12px 18px;background:var(--blue);color:white}.skip-link:focus{top:12px}.site-header{position:-webkit-sticky;position:sticky;z-index:40;top:0;background:var(--paper);border-bottom:1px solid var(--line)}.site-header__inner{display:flex;min-height:80px;align-items:center;gap:36px}.footer-wordmark,.wordmark{display:inline-flex;min-height:44px;gap:13px;align-items:center;font-size:15px;font-weight:650;letter-spacing:-.025em;white-space:nowrap}.glasses-mark{width:48px;height:31px;color:var(--blue)}.site-nav{display:flex;order:2;align-items:center;gap:28px;margin-left:auto;font-size:13px}.site-nav a{display:inline-flex;align-items:center;min-height:44px}.site-nav a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:5px}.header-cv{display:inline-flex;order:3;flex:none;align-items:center;gap:8px;min-height:44px;padding:9px 14px;background:var(--blue);color:white;font-size:12px;font-weight:600;--focus:var(--ink)}.header-cv svg{width:16px;height:16px}.header-cv:hover{background:var(--ink)}.menu-toggle{display:none;order:4;min-height:44px;align-items:center;gap:12px;padding:0;background:none;font-size:13px}.menu-toggle__icon,.menu-toggle__icon:after,.menu-toggle__icon:before{display:block;width:18px;height:1px;background:currentColor}.menu-toggle__icon{position:relative}.menu-toggle__icon:after,.menu-toggle__icon:before{content:"";position:absolute;left:0}.menu-toggle__icon:before{top:-5px}.menu-toggle__icon:after{top:5px}.eyebrow,.section-number{display:flex;gap:9px;align-items:center;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.025em}.section-number{color:var(--blue);margin-bottom:16px}.status-dot{display:inline-block;width:7px;height:7px;flex:none;border-radius:50%;background:var(--red)}.button{display:inline-flex;min-height:48px;padding:13px 18px;align-items:center;justify-content:center;gap:20px;border:1px solid transparent;font-size:14px;font-weight:600;line-height:1.3}.button svg,.text-link svg{width:17px;height:17px}.button--primary{background:var(--blue);color:white}.button--primary:hover{background:var(--ink)}.text-link{display:inline-flex;min-height:44px;align-items:center;gap:8px;font-size:13px;border-bottom:1px solid}.text-link:hover{color:var(--blue)}.hero{padding:64px 0 0}.hero__grid{display:grid;grid-template-columns:minmax(0,1.17fr) minmax(0,.83fr);grid-gap:48px;gap:48px;align-items:center}.hero__copy{min-width:0;padding-bottom:36px}.hero .eyebrow{margin-bottom:28px;color:var(--muted)}.hero-title{max-width:13ch;font-size:clamp(48px,5.45vw,78px);line-height:1.08;font-weight:550;letter-spacing:-.065em;text-wrap:balance}.hero-title span{color:var(--blue)}.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px}.hero__work{position:relative;min-width:0;height:414px}.hero-preview{position:absolute;display:block;overflow:hidden;background:var(--white);border:1px solid #b9c3c8;transition:transform .2s ease}.hero-preview:hover{transform:translateY(-5px)}.hero-preview--admin{top:4px;left:0;width:84%;border-radius:18px 3px 3px 3px;box-shadow:0 9px 18px #14252d0d}.hero-preview--admin img{width:100%;aspect-ratio:1.72;object-fit:cover;object-position:top}.hero-preview__label{display:flex;align-items:center;gap:7px;padding:8px 12px;color:var(--blue);font-family:var(--font-mono);font-size:10px}.hero-preview__label svg{width:14px;height:14px}.hero-preview--xp{top:115px;right:0;width:30%;height:192px;border:5px solid var(--ink);border-radius:16px 16px 5px 5px;box-shadow:-8px 9px 0 var(--paper)}.hero-preview--xp img{margin-top:-12%}.hero__jonas{position:absolute;bottom:-15px;left:10px;width:74%}.hero__jonas .guide-note{--guide-slot-width:125px;column-gap:18px}.hero__jonas .guide-note__body{padding-top:14px}.hero__jonas .guide-note__bubble{padding:12px 15px;transform:rotate(-3deg)}.hero__jonas .guide-note__caption{font-size:19px;letter-spacing:-.04em}.projects{padding-top:92px}.section-intro{margin-bottom:42px}.about h2,.contact h2,.section-intro h2{font-size:clamp(35px,4vw,56px);font-weight:500;letter-spacing:-.055em;line-height:1.12}.section-intro--project-index,.section-intro--with-note{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.project-index{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 24px;gap:0 24px;font-size:11px}.project-index a{display:flex;align-items:center;min-height:34px;border-bottom:1px solid var(--line)}.project-index a:hover{color:var(--blue);border-color:var(--blue)}.project-list{display:grid;grid-gap:84px;gap:84px}.project-panel{display:grid;min-width:0;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);grid-template-areas:"tab tab" "copy media" "copy note";align-items:start;grid-gap:28px 48px;gap:28px 48px;padding:0 0 36px}.project-panel,.project-panel__tab{border-bottom:1px solid var(--line)}.project-panel__tab{grid-area:tab;display:flex;gap:14px;align-items:center;min-height:42px;padding-bottom:15px;font-family:var(--font-mono);font-size:11px}.project-panel__number{display:grid;place-items:center;width:29px;height:29px;background:var(--blue);color:white;border-radius:50%}.project-panel__company{display:inline-flex;align-items:center;gap:8px;margin-left:auto;color:var(--muted);font-size:10px}.project-panel__company .company-mark{width:28px;height:25px;padding:0}.project-panel__copy{grid-area:copy;min-width:0}.project-kicker{margin:0 0 12px;font-family:var(--font-mono);font-size:11px;color:var(--muted)}.project-panel h3{display:flex;align-items:center;gap:12px;font-size:clamp(32px,3.3vw,48px);font-weight:550;letter-spacing:-.05em;line-height:1.12}.project-panel--lorawan h3{max-width:13ch}.project-summary{max-width:40ch;margin-top:18px;font-size:17px;line-height:1.55;color:var(--muted)}.project-metrics{display:flex;gap:20px;flex-wrap:wrap;margin-top:22px}.project-metric{display:grid;grid-gap:0;gap:0}.project-metric strong{color:var(--blue);font-size:30px;font-weight:500;letter-spacing:-.04em;line-height:1.25}.project-metric span{font-family:var(--font-mono);color:var(--muted);font-size:10px}.project-contribution{margin-top:28px}.detail-label{display:flex;align-items:center;gap:7px;margin-bottom:11px;font-family:var(--font-mono);font-size:11px;color:var(--blue)}.detail-label svg{width:15px;height:15px}.project-contributions{display:grid;grid-gap:10px;gap:10px;padding:0;list-style:none;font-size:14px;line-height:1.65}.project-contributions li{position:relative;padding-left:15px}.project-contributions li:before{position:absolute;left:0;top:.72em;width:4px;height:4px;background:var(--blue);content:""}.stack-list{display:flex;gap:9px 15px;flex-wrap:wrap;font-size:11px;line-height:1.5}.stack-list>span{display:inline-flex;align-items:center;gap:5px}.stack-list img,.stack-list svg,.tech-icon{width:16px;height:16px}.tech-icon{display:inline-flex;justify-content:center;align-items:center}.tech-icon--fallback{font-size:9px}.project-contribution>.stack-list{margin-top:24px;color:var(--muted)}.project-links{display:flex;align-items:center;flex-wrap:wrap;gap:2px 18px;margin-top:20px;font-size:12px}.project-links a{display:inline-flex;gap:6px;align-items:center;min-height:44px;border-bottom:1px solid var(--line)}.project-links a>svg{width:14px;height:14px}.project-links a>svg:last-child{width:11px;height:11px;color:var(--muted)}.project-links a:hover{color:var(--blue);border-color:var(--blue)}.project-access{display:block;margin-top:20px;color:var(--muted);font-family:var(--font-mono);font-size:10px}.project-panel__media{grid-area:media;min-width:0;width:100%}.project-panel__note{grid-area:note;min-width:0;padding-top:8px}.media-frame{display:block;min-width:0;overflow:hidden}.media-frame:focus-visible{outline-offset:5px}.media-frame img{width:100%}.media-frame:hover{outline:2px solid var(--blue);outline-offset:4px}.project-panel__media--citypilot{position:relative;margin-top:2px;min-height:340px;aspect-ratio:1.3;background:#e1eae5;border-radius:28px 3px 3px 3px}.media-frame--admin{position:absolute;left:4%;top:15%;width:83%;border:1px solid #a6b9af;border-radius:6px;box-shadow:0 8px 20px #14252d0d}.media-frame--phone{position:absolute;top:29%;right:4%;width:25%;border:4px solid var(--ink);border-radius:17px;box-shadow:-5px 7px 0 #e1eae5}.city-media-label{position:absolute;display:flex;gap:6px;align-items:center;color:#37564a;font-family:var(--font-mono)}.city-media-label svg{width:14px;height:14px}.city-media-label--admin{left:4%;top:6%}.city-media-label--phone{right:4%;top:calc(29% - 23px)}.project-panel--lorawan{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);padding:30px;background:var(--ink);color:var(--paper);border-radius:3px 30px 3px 3px;--muted:#b6c4c9;--line:#41525b;--focus:#b5c6ff}.project-panel--lorawan .project-panel__tab{padding-top:0}.project-panel--lorawan .project-panel__number{background:var(--paper);color:var(--ink)}.project-panel--lorawan .detail-label{color:#b5c6ff}.project-panel--lorawan .project-contributions li:before{background:#8ea9ff}.packet-visual{border:1px solid #50616b;background:#1c313d;padding:22px}.packet-visual__label{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:10px;color:#d5e2e6}.packet-visual__label>span:last-child{margin-left:auto;color:#a7bac4;font-size:9px}.packet-volume{margin-top:28px}.packet-volume strong{display:block;font-size:clamp(80px,9vw,130px);font-weight:450;letter-spacing:-.07em;line-height:1}.packet-volume strong span{color:#f28b65}.packet-volume>span{color:#b9c7ce}.packet-path,.packet-volume>span{font-family:var(--font-mono);font-size:11px}.packet-path{display:grid;grid-template-columns:.8fr .3fr 1fr .25fr 1.1fr;align-items:center;margin-top:35px}.packet-forwarder,.packet-node{display:flex;flex-direction:column;align-items:center}.packet-node>svg{width:28px;height:28px;color:#a6d5e5;margin-bottom:8px}.packet-forwarder strong,.packet-node strong{font-size:16px;font-weight:500}.packet-forwarder>span,.packet-node>span{color:#b9c7ce;font-size:10px}.packet-forwarder{padding:15px 5px;border:1px solid #83a2af;border-radius:8px 2px;background:#273f4c}.packet-forwarder>svg{width:28px;height:28px;margin-bottom:5px}.packet-wire{position:relative;display:block;height:1px;background:#84a6b4}.packet-wire i{position:absolute;top:-2px;width:5px;height:5px;background:#ef8a65}.packet-wire i:first-child{left:20%}.packet-wire i:nth-child(2){left:55%}.packet-wire i:nth-child(3){left:85%}.packet-split{display:block;height:50%;border:1px solid #84a6b4;border-right:0;margin-left:0}.packet-targets{display:grid;grid-gap:12px;gap:12px}.packet-targets>span{display:flex;align-items:center;gap:6px;padding:8px 5px;border:1px solid #68818c;border-radius:2px}.packet-targets svg{width:15px;height:15px}.packet-monitor{display:flex;gap:7px;align-items:center;margin-top:25px;padding-top:16px;border-top:1px solid #455c67;font-size:10px;color:#b9c7ce}.packet-monitor svg{width:16px;height:16px}.packet-monitor>span:last-child{margin-left:auto}.project-panel--xp{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.xp-wordmark{width:140px;height:auto;padding:14px 17px;background:var(--ink)}.xp-gallery{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;grid-gap:14px;gap:14px;padding:28px 24px 18px;background:#c74b34;border-radius:3px 3px 28px 3px}.xp-screen{min-width:0}.xp-screen--badges{margin-top:24px}.xp-screen--player{margin-top:48px}.xp-screen__image{border:3px solid #15242b;border-radius:16px 16px 3px 3px;box-shadow:0 6px 14px #45221626}.xp-screen__image img{width:100%}.xp-screen figcaption{display:flex;gap:5px;align-items:center;margin-top:10px;color:white;font-family:var(--font-mono);font-size:9px;line-height:1.5}.xp-screen figcaption svg{width:12px;height:12px}.project-panel--overview{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-template-areas:"tab tab" "copy media" "note media"}.project-panel--overview h3{font-size:clamp(27px,2.8vw,39px);letter-spacing:-.035em}.project-panel--overview h3 .company-mark{width:34px;height:34px}.project-panel__media--overview{align-self:center;padding:28px 16px 16px;background:#e9ecf2;border-radius:3px 28px 3px 3px}.guide-note{--guide-slot-width:100px;--speech-bg:var(--white);--speech-ink:var(--ink);--speech-line:#8d9ba2;display:grid;grid-template-columns:var(--guide-slot-width) minmax(0,1fr);grid-template-areas:"avatar content";align-items:start;grid-column-gap:22px;column-gap:22px;width:100%;min-width:0}.guide-note__slot{grid-area:avatar;position:relative;width:var(--guide-slot-width);aspect-ratio:100/156.25;align-self:start;pointer-events:none}.guide-avatar,.guide-note .guide-avatar .avatar-stage{position:absolute;inset:0;width:100%;height:100%;min-height:0}.guide-note .guide-avatar .avatar-stage__canvas,.guide-note .guide-avatar canvas{width:100%;height:100%}.guide-note__body{grid-area:content;align-self:start;min-width:0;padding-top:12px}.guide-note__bubble{position:relative;min-width:0;padding:13px 16px;border:1px solid var(--speech-line);border-radius:14px 14px 14px 3px;background:var(--speech-bg);color:var(--speech-ink)}.guide-note__caption{font-size:13px;line-height:1.6}.guide-note__speaker{display:none}.guide-note__tail{position:absolute;z-index:1;display:block;width:28px;height:22px;overflow:visible;pointer-events:none}.guide-note__tail path{fill:var(--speech-bg);stroke:var(--speech-line);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.guide-note__tail--side{top:12px;left:-27px}.guide-note__tail--top{display:none}.guide-note__actions{margin-top:6px}.guide-note__detail summary{display:inline-flex;gap:8px;align-items:center;min-height:44px;padding:4px 0;color:inherit;font-size:11px;list-style:none;cursor:pointer}.guide-note__detail summary::-webkit-details-marker{display:none}.guide-note__detail summary:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.guide-note__chevron{width:14px;height:14px;transition:transform .16s ease}.guide-note__detail[open] .guide-note__chevron{transform:rotate(180deg)}.guide-note__detail>div{padding:12px 0 5px;font-size:13px}.build-notes{display:grid;grid-gap:9px;gap:9px}.project-panel--lorawan .guide-note{--speech-bg:#273d49;--speech-ink:#f6f3ec;--speech-line:#7c929e}.project-panel--lorawan .guide-note__detail summary:hover{color:#b5c6ff}.guide-note[data-placement=right]{grid-template-columns:minmax(0,1fr) var(--guide-slot-width);grid-template-areas:"content avatar"}.guide-note[data-placement=right] .guide-note__tail--side{right:-27px;left:auto;transform:scaleX(-1)}.guide-note[data-placement=above]{display:block}.guide-note[data-placement=above] .guide-note__slot{margin-inline:auto}.guide-note[data-placement=above] .guide-note__body{margin-top:24px}.guide-note[data-placement=above] .guide-note__tail--side{display:none}.guide-note[data-placement=above] .guide-note__tail--top{display:block;top:-26px;left:calc(50% - 15px);width:30px;height:28px}.more-work{margin-top:60px;border-block:1px solid var(--ink)}.more-work>summary{display:flex;align-items:center;justify-content:space-between;min-height:80px;gap:20px;list-style:none;cursor:pointer;font-size:25px;font-weight:500;letter-spacing:-.035em}.more-work>summary::-webkit-details-marker{display:none}.more-work__count{display:flex;gap:26px;align-items:center;font-family:var(--font-mono);font-size:12px}.more-work__count b{display:block;font-size:26px;font-weight:400;transition:transform .15s}.more-work[open] .more-work__count b{transform:rotate(45deg)}.more-work__grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 44px;gap:0 44px;padding-bottom:22px}.more-work__grid article{padding-block:26px;border-top:1px solid var(--line)}.more-work__grid h3{font-size:21px;font-weight:550;letter-spacing:-.03em}.more-work__grid article>p:not(.detail-label){margin-top:12px;font-size:14px;color:var(--muted)}.more-work__grid .stack-list{margin-top:20px}.more-work__grid small{display:block;margin-top:14px;color:var(--muted);font-size:11px}.experience{background:#e9edf0}.experience-list{border-top:1px solid var(--ink)}.experience-item{border-bottom:1px solid #c2cbd0}.experience-item__summary{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) 175px 24px;grid-template-areas:"company role date toggle" "preview preview preview toggle";align-items:center;grid-gap:8px 24px;gap:8px 24px;padding:23px 0;list-style:none}summary.experience-item__summary{cursor:pointer}.experience-item__summary::-webkit-details-marker{display:none}.experience-item__company{grid-area:company;display:flex;gap:12px;align-items:center;font-size:16px;font-weight:600;letter-spacing:-.025em}.company-mark{display:inline-grid;flex:none;width:54px;height:44px;align-items:center;padding:4px}.company-mark img{width:100%;max-height:36px;object-fit:contain}.company-mark--xp{background:var(--ink);padding:9px}.experience-item__role{grid-area:role;font-size:13px}.experience-item__date{grid-area:date;font-family:var(--font-mono);font-size:10px;color:var(--muted)}.experience-item__preview{grid-area:preview;padding-left:66px;font-size:13px;color:var(--muted)}.experience-item__toggle{grid-area:toggle;display:grid;width:26px;height:26px;place-items:center;border:1px solid #93a2aa;border-radius:50%;color:var(--blue);font-size:19px;font-weight:400;line-height:1;transition:transform .2s}.experience-item[open] .experience-item__toggle{transform:rotate(45deg)}summary.experience-item__summary:hover .experience-item__company{color:var(--blue)}.experience-item__body{padding:0 50px 28px 66px}.experience-location{margin-bottom:15px;color:var(--muted);font-family:var(--font-mono);font-size:11px}.experience-highlights{display:grid;grid-gap:9px;gap:9px;max-width:90ch;font-size:14px}.experience-item__body .stack-list{margin-top:20px;color:var(--muted)}.education-skills{display:grid;grid-template-columns:1fr 1.2fr;grid-gap:80px;gap:80px;margin-top:65px;padding-top:50px;border-top:1px solid var(--ink)}.education-skills h3{margin-bottom:26px;font-size:28px;font-weight:500;letter-spacing:-.04em}.education-entry__brand{display:flex;align-items:center;gap:16px}.education-entry__logo{width:60px;height:auto;max-height:50px;object-fit:contain}.education h4{font-size:17px;font-weight:550;letter-spacing:-.02em}.education p{font-size:13px;color:var(--muted)}.education-meta{margin-top:20px;font-family:var(--font-mono);font-size:11px!important}.education ul{display:grid;grid-gap:7px;gap:7px;margin-top:16px;color:var(--muted);font-size:13px}.skills-group+.skills-group{margin-top:20px;padding-top:16px;border-top:1px solid #c2cbd0}.skills-group h4{margin-bottom:12px;color:var(--muted);font-family:var(--font-mono);font-size:10px;font-weight:500}.skills-group .stack-list,.skills-group p{font-size:12px}.about__grid{display:grid;grid-template-columns:minmax(140px,.55fr) minmax(0,1.45fr);grid-gap:80px;gap:80px;align-items:center;max-width:1000px}.about__copy>p:not(.section-number){max-width:47ch;margin-top:22px;color:var(--muted);font-size:17px;line-height:1.7}.contact{background:#214be8;color:white;padding-bottom:100px;--focus:white}.contact .section-number{color:#d1dcff}.contact__grid{display:grid;grid-template-columns:1fr .9fr;grid-gap:100px;gap:100px;align-items:start}.contact h2{font-size:clamp(44px,6vw,80px)}.contact .guide-note{max-width:430px;--guide-slot-width:115px;--speech-bg:#2a50db;--speech-ink:white;--speech-line:#a8bdff;margin-top:35px}.contact .guide-note__caption{font-size:15px}.contact-link{display:flex;width:100%;gap:24px;min-height:65px;align-items:center;justify-content:space-between;padding:14px 0;border:0;border-bottom:1px solid #819af2;background:transparent;color:white;text-align:left;font-size:17px}.contact-link:hover{color:#ffdacb}.contact-link>svg{width:17px;height:17px}.contact-link__title{display:inline-flex;align-items:center;gap:14px;font-weight:400}.contact-link__icon{width:20px;height:20px}.contact-link--disabled{opacity:.55}.protected-email__panel--inline{padding:16px 0}.protected-email__revealed-row{display:flex;flex-wrap:wrap;gap:8px}.protected-email__revealed-email{flex:1 1;min-width:120px;width:100%;padding:10px;border:1px solid #98b0ff;border-radius:0;background:transparent;color:white;font-size:13px}.protected-email__copy-button{min-height:44px;padding:10px 13px;background:var(--paper);color:var(--ink);font-size:12px}.protected-email__availability,.protected-email__panel-error{display:block;margin-top:12px;color:#ffe0d8;font-size:12px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:70px;padding-top:25px;border-top:1px solid #819af2}.footer-wordmark{font-size:13px}.footer-wordmark .glasses-mark{color:white;width:39px}.site-footer__actions{display:flex;align-items:center;gap:26px;font-size:10px}.site-footer__actions a,.site-lock-button{display:inline-flex;min-height:44px;align-items:center;padding:0;background:transparent;color:#d8e2ff}.site-footer__actions a:hover,.site-lock-button:hover{color:white;text-decoration:underline;text-underline-offset:4px}@media (min-width:1500px){.hero__work{height:460px}.hero-title{font-size:88px}.hero-preview--xp{height:220px}.hero__jonas{left:30px}}@media (max-width:1100px){:root{--shell:calc(100% - 64px)}.site-header__inner{gap:24px}.site-nav{gap:20px}.hero__grid{gap:30px}.hero-title{font-size:60px}.hero__work{height:360px}.hero__jonas{left:0;bottom:-5px;width:87%}.hero__jonas .guide-note{--guide-slot-width:110px}.hero-preview--xp{top:100px;height:165px}.project-panel{gap:26px 32px}.project-panel__media--citypilot{min-height:300px}.project-panel--lorawan{padding:25px}.packet-visual{padding:18px}.packet-path{font-size:9px}.packet-monitor{flex-wrap:wrap}.packet-monitor>span:last-child{margin-left:0}.xp-gallery{gap:9px;padding:22px 16px 16px}.xp-screen figcaption{font-size:8px}.guide-note{--guide-slot-width:85px;gap:17px}.guide-note__bubble{padding:11px 13px}.guide-note__caption{font-size:12px}.experience-item__summary{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) 150px 24px;gap:8px 16px}.experience-item__company{font-size:14px}.contact__grid{gap:55px}}@media (max-width:900px){.section{padding-block:76px}.hero{padding-top:45px}.hero-title{font-size:53px}.hero__actions{gap:16px}.hero__work{height:330px}.hero-preview--admin{width:92%}.hero-preview--xp{top:108px;width:33%;height:152px}.hero__jonas{width:88%;bottom:-14px}.hero__jonas .guide-note{--guide-slot-width:100px}.hero__jonas .guide-note__caption{font-size:16px}.section-intro--project-index{display:block}.project-index{display:flex;flex-wrap:wrap;gap:0 24px;margin-top:22px}.project-panel{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:26px}.project-summary{font-size:15px}.project-contributions{font-size:13px}.project-panel__media--citypilot{min-height:280px}.city-media-label{font-size:8px}.guide-note{--guide-slot-width:76px}.guide-note__caption{font-size:12px}.project-panel--lorawan{grid-template-columns:1fr;grid-template-areas:"tab" "copy" "media" "note"}.project-panel--lorawan .project-panel__copy{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:30px;gap:30px}.project-panel--lorawan .project-contribution{margin-top:0}.packet-visual{padding:26px}.packet-volume strong{font-size:105px}.packet-path{font-size:12px;grid-template-columns:.8fr .4fr 1fr .3fr 1fr}.packet-monitor>span:last-child{margin-left:auto}.project-panel--lorawan .project-panel__note{max-width:480px;justify-self:end}.xp-gallery{padding:20px 12px 14px;gap:8px}.xp-screen__image{border-width:2px;border-radius:9px 9px 2px 2px}.xp-screen figcaption svg{display:none}.education-skills{gap:42px}.about__grid{gap:50px}.experience-item__summary{grid-template-columns:minmax(0,1fr) 150px 24px;grid-template-areas:"company date toggle" "role role toggle" "preview preview toggle";gap:5px 16px}.experience-item__role{padding-left:66px}}@media (max-width:700px){:root{--shell:calc(100% - 40px)}#education,#main,#skills,article[id],footer[id],section[id]{scroll-margin-top:90px}.site-header__inner{min-height:68px;gap:18px}.wordmark{gap:9px;font-size:13px}.glasses-mark{width:38px;height:26px}.header-cv{margin-left:auto;min-height:40px;padding:7px 9px;font-size:10px}.header-cv__format{display:none}.header-cv svg{width:14px;height:14px}.menu-toggle{display:flex;font-size:11px;gap:9px}.site-nav{position:absolute;top:68px;right:0;left:0;display:none;padding:10px 20px 18px;border-bottom:1px solid var(--line);background:var(--paper)}.site-nav.is-open{display:grid;grid-gap:0;gap:0}.site-nav a{min-height:48px;border-bottom:1px solid var(--line)}.hero{padding-top:36px}.hero__grid{grid-template-columns:1fr;gap:30px}.hero .eyebrow{margin-bottom:21px;font-size:10px}.hero-title{max-width:15ch;font-size:clamp(43px,8.4vw,64px);line-height:1.09;letter-spacing:-.06em}.hero__copy{padding:0}.hero__actions{margin-top:26px;gap:18px}.hero__actions .button{min-height:45px;padding:12px 15px;gap:16px;font-size:12px}.hero__actions .text-link{font-size:11px}.hero__work{width:min(100%,500px);justify-self:center;height:276px}.hero-preview--admin{width:70%;left:0;top:0}.hero-preview__label{padding:6px 9px;font-size:8px}.hero-preview--xp{top:35px;right:0;width:24%;height:168px}.hero__jonas{left:5%;bottom:-5px;width:72%}.hero__jonas .guide-note{--guide-slot-width:105px}.hero__jonas .guide-note__body{padding-top:12px}.hero__jonas .guide-note__caption{font-size:17px}.section{padding-block:64px}.section-number{font-size:10px;margin-bottom:12px}.section-intro{margin-bottom:30px}.about h2,.section-intro h2{font-size:36px}.project-index{gap:0 20px;font-size:10px}.project-index a{min-height:40px}.project-list{gap:58px}.project-panel{grid-template-columns:1fr;grid-template-areas:"tab" "copy" "media" "note";gap:24px;padding-bottom:28px}.project-panel__tab{gap:10px;padding-bottom:12px;font-size:10px}.project-panel__company{font-size:9px}.project-panel__number{width:26px;height:26px}.project-panel h3{font-size:37px}.project-summary{font-size:16px;max-width:44ch;margin-top:14px}.project-contributions{font-size:14px;gap:8px}.project-contribution{margin-top:22px}.project-contribution .stack-list{margin-top:19px}.project-links{font-size:12px;margin-top:14px}.project-metrics{margin-top:16px}.project-panel__media--citypilot{min-height:0;aspect-ratio:1.3}.city-media-label{font-size:9px}.project-panel__note{max-width:500px}.guide-note{--guide-slot-width:92px;gap:18px}.guide-note__body{padding-top:12px}.guide-note__caption{font-size:13px}.project-panel--lorawan{padding:20px;border-radius:3px 24px 3px 3px}.project-panel--lorawan .project-panel__copy{display:block}.project-panel--lorawan .project-contribution{margin-top:24px}.project-panel--lorawan h3{max-width:14ch;font-size:34px}.packet-visual{padding:20px 14px}.packet-volume{margin-top:24px}.packet-volume strong{font-size:90px}.packet-path{grid-template-columns:.8fr .2fr .9fr .2fr 1.1fr;margin-top:30px;font-size:9px}.packet-forwarder strong,.packet-node strong{font-size:14px}.packet-forwarder>span,.packet-node>span{font-size:8px}.packet-forwarder{padding:12px 4px}.packet-targets>span{gap:4px;padding:8px 4px}.packet-targets svg{width:12px;height:12px}.packet-monitor{gap:5px;font-size:8px}.packet-monitor>span:last-child{margin-left:auto}.project-panel--lorawan .guide-note{--guide-slot-width:78px;gap:17px}.project-panel--lorawan .guide-note__bubble{padding:11px 12px}.xp-gallery{gap:13px;padding:22px 18px}.xp-screen figcaption{font-size:9px}.xp-screen--badges{margin-top:20px}.xp-screen--player{margin-top:38px}.xp-wordmark{width:130px}.project-panel--overview{grid-template-columns:1fr;grid-template-areas:"tab" "copy" "media" "note"}.project-panel__media--overview{padding:22px 12px 15px}.more-work{margin-top:35px}.more-work>summary{min-height:75px;font-size:23px}.more-work__grid{grid-template-columns:1fr}.section-intro--with-note{gap:15px}.section-intro--with-note h2{max-width:8ch}.section-intro--with-note .text-link{flex:none;font-size:11px}.experience-item__summary{grid-template-columns:minmax(0,1fr) 24px;grid-template-areas:"company toggle" "role toggle" "date toggle" "preview preview";padding-block:20px;gap:5px 10px}.experience-item__company{font-size:15px;gap:10px}.company-mark{width:46px;height:36px}.experience-item__role{padding-left:56px;font-size:12px}.experience-item__date{padding-left:56px;font-size:9px}.experience-item__preview{padding:10px 0 0;font-size:13px}.experience-item__body{padding:0 0 25px}.experience-highlights{font-size:13px}.education-skills{grid-template-columns:1fr;gap:40px;padding-top:35px;margin-top:40px}.about__grid{grid-template-columns:115px minmax(0,1fr);gap:25px;align-items:start}.about__copy .section-number{font-size:8px}.about h2{font-size:31px}.about__copy>p:not(.section-number){margin-top:16px;font-size:14px}.contact{padding-bottom:100px}.contact__grid{grid-template-columns:1fr;gap:30px}.contact h2{font-size:60px}.contact .guide-note{--guide-slot-width:105px;max-width:380px;margin-top:25px}.contact .guide-note__caption{font-size:14px}.contact-link{min-height:60px;font-size:16px}.site-footer{margin-top:45px;align-items:flex-start;gap:20px}.footer-wordmark{gap:8px;font-size:11px}.footer-wordmark .glasses-mark{width:31px}.site-footer__actions{gap:14px;font-size:9px}}@media (max-width:380px){:root{--shell:calc(100% - 32px)}.site-header__inner{gap:12px}.wordmark{font-size:12px;gap:7px}.glasses-mark{width:33px}.hero-title{font-size:43px}.hero__work{height:245px}.hero-preview--xp{height:145px}.hero__jonas .guide-note{--guide-slot-width:95px}.project-panel--lorawan{padding:16px}.packet-visual{padding:16px 10px}.packet-targets>span{font-size:8px}.packet-monitor{flex-wrap:wrap}.packet-monitor>span:last-child{margin-left:0}.xp-gallery{gap:9px;padding-inline:13px}.xp-screen figcaption{font-size:8px}.about__grid{grid-template-columns:90px minmax(0,1fr);gap:22px}.site-footer{flex-direction:column;gap:4px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.guide-note__caption{font-size:14px}.xp-screen figcaption{font-size:11px}@media (max-width:900px) and (min-width:701px){.project-panel--xp{grid-template-columns:1fr;grid-template-areas:"tab" "copy" "media" "note"}.project-panel--xp .project-panel__copy{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:30px;gap:30px}.project-panel--xp .project-contribution{margin-top:0}.xp-gallery{max-width:650px;justify-self:center;padding:28px 24px;gap:18px}.project-panel--xp .project-panel__note{max-width:480px;justify-self:end}}@media (max-width:700px){.guide-note__caption{font-size:13px}.xp-gallery{display:flex;align-items:flex-start;gap:17px;padding:22px 18px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#f4b9a8 transparent}.xp-screen{flex:0 0 54%;scroll-snap-align:center}.xp-screen figcaption{font-size:11px}.xp-screen figcaption svg{display:block}.packet-path{font-size:10px}.site-footer{flex-direction:column;align-items:flex-start;gap:4px}.site-footer__actions{gap:24px}.header-cv,.project-index a{min-height:44px}.packet-forwarder>span,.packet-node>span,.packet-targets>span{font-size:10px}}.about__copy>p+p:not(.section-number){margin-top:12px}.hero{padding-bottom:24px}.projects{padding-top:52px}.city-media-label{z-index:2;padding:4px 7px;border:1px solid #b8c9bf;border-radius:3px;background:#f6f8f1;color:#284738;font-size:10px;line-height:1.3;box-shadow:0 1px 2px #14252d0d}.city-media-label--admin{top:5%}.city-media-label--phone{top:calc(29% - 29px)}.about__grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:70px;align-items:start;max-width:1050px}.about__tea{width:48px;height:48px;margin-top:26px;color:var(--red);stroke-width:1.3}.about__copy>p:not(.section-number){margin-top:0;font-size:18px}.about__copy>p+p:not(.section-number){margin-top:22px}@media (max-width:700px){.hero{padding-bottom:6px}.projects{padding-top:48px}.city-media-label{font-size:9px;padding:4px 5px}.about__grid{grid-template-columns:1fr;gap:24px}.about__heading{position:relative;padding-right:60px}.about__tea{position:absolute;right:0;bottom:0;width:40px;height:40px;margin:0}.about__copy>p:not(.section-number){font-size:16px}}.login-gate{--gate-ink:#14252d;--gate-paper:#f6f3ec;--gate-blue:#214be8;min-height:100vh;min-height:100dvh;padding-inline:max(24px,calc((100vw - 1240px)/2));overflow-x:clip;color:var(--gate-ink);background:var(--gate-paper)}.login-gate__header{position:relative;z-index:1;display:flex;min-height:82px;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #bbc2c0}.login-gate__wordmark{display:inline-flex;align-items:center;gap:13px;font-size:16px;font-weight:650;letter-spacing:-.025em}.login-gate__wordmark svg{width:46px;height:30px;color:var(--gate-blue)}.login-gate__header-note{color:#56636a;font-family:var(--font-mono,monospace);font-size:11px;letter-spacing:.07em;text-transform:uppercase}.login-gate__room{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:center;grid-gap:clamp(10px,3vw,44px);gap:clamp(10px,3vw,44px);width:min(1160px,100%);min-height:0;margin-inline:auto;padding:clamp(24px,5vh,64px) 0 48px}.login-gate__scene{position:relative;min-width:0;aspect-ratio:1.3;color:var(--gate-blue)}.login-gate__scene>div{width:100%;height:100%}.login-gate__scene canvas{display:block;outline:none}.login-gate__panel{position:relative;z-index:1;width:min(100%,354px);padding:29px;border:1px solid var(--gate-ink);background:#fffdf7;box-shadow:6px 6px 0 #dedfd7}.login-gate__panel:before{content:"";position:absolute;height:5px;inset:-1px -1px auto;background:var(--gate-blue)}.login-gate__panel-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--gate-blue)}.login-gate__panel-top svg{width:44px;height:27px}.login-gate__screw{width:9px;height:9px;border:1px solid #8d999e;border-radius:50%;background:linear-gradient(35deg,transparent 43%,#8d999e 44% 55%,transparent 56%)}.login-gate__panel h1{margin:0 0 32px;font-size:clamp(40px,4.5vw,58px);font-weight:550;letter-spacing:-.065em;line-height:1.05}.login-gate__panel form{min-width:0}.login-gate__panel label{display:block;margin-bottom:9px;font-size:13px;font-weight:650}.login-gate__input-wrap{display:flex;min-width:0;border:1px solid #8d999e;background:#f6f3ec}.login-gate__input-wrap:focus-within{border-color:var(--gate-blue);outline:2px solid var(--gate-blue);outline-offset:3px}.login-gate__input-wrap[data-invalid=true]{border-color:#b53e2b}.login-gate__input-wrap input{width:100%;min-width:0;min-height:53px;padding:12px;border:0;border-radius:0;background:transparent;color:var(--gate-ink);font:inherit;font-size:16px;line-height:1.4}.login-gate__input-wrap input:focus-visible{outline:none}.login-gate__reveal{min-width:54px;padding:10px;border:0;border-left:1px solid #cbd0ce;background:transparent;color:#56636a;font-size:12px}.login-gate__reveal:hover:not(:disabled){color:var(--gate-blue);background:#e8ecfb}.login-gate__reveal:focus-visible{outline-offset:-4px}.login-gate__reveal:disabled{opacity:.6}.login-gate__message{min-height:2.9em;margin:13px 0 10px;color:#a33524;font-size:12px;line-height:1.45}.login-gate__submit{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:13px 16px;border:1px solid var(--gate-blue);background:var(--gate-blue);color:#fff;font-size:14px;font-weight:600;transition:background-color .15s ease}.login-gate__submit svg{width:21px;height:21px}.login-gate__submit:hover:not(:disabled){background:#183bc1}.login-gate__submit:disabled{cursor:wait;opacity:.7}.login-gate__panel{transition:opacity .3s ease}.login-gate[data-reaction=wrong] .login-gate__panel{animation:login-not-quite .18s ease-in-out 2}.login-gate[data-phase=opening] .login-gate__panel{opacity:.4}@keyframes login-not-quite{0%,to{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@media (max-width:1000px){.login-gate__room{grid-template-columns:minmax(0,1.3fr) minmax(285px,1fr);gap:10px}.login-gate__scene{margin-left:-15px}.login-gate__panel{padding:25px}}@media (min-width:701px) and (max-height:720px){.login-gate__room{padding-block:24px}.login-gate__scene{max-height:calc(100svh - 130px)}}@media (min-width:701px) and (max-height:600px){.login-gate__room{padding-block:16px}.login-gate__scene{max-height:calc(100svh - 114px)}.login-gate__panel{padding:22px}.login-gate__panel-top{margin-bottom:14px}.login-gate__panel-top svg{width:35px;height:21px}.login-gate__panel h1{margin-bottom:20px;font-size:42px}}@media (max-width:700px){.login-gate{padding-inline:20px}.login-gate__header{min-height:68px}.login-gate__wordmark{gap:10px;font-size:14px}.login-gate__wordmark svg{width:39px;height:26px}.login-gate__room{display:flex;flex-direction:column;gap:0;width:min(420px,100%);min-height:auto;padding:4px 0 34px}.login-gate__scene{flex:none;width:calc(100% + 24px);height:clamp(200px,34svh,290px);margin:0 -12px}.login-gate__panel{width:min(100%,360px);margin-top:-2px;padding:23px}.login-gate__panel-top{margin-bottom:16px}.login-gate__panel-top svg{width:36px;height:22px}.login-gate__panel h1{margin-bottom:24px;font-size:44px}.login-gate__panel label{font-size:14px}.login-gate__input-wrap input{min-height:50px;font-size:17px}.login-gate__message{font-size:12px}.login-gate__submit{min-height:50px}}@media (max-width:360px){.login-gate{padding-inline:16px}.login-gate__scene{height:clamp(180px,31svh,245px)}.login-gate__panel{padding:20px}.login-gate__panel-top{margin-bottom:10px}.login-gate__panel h1{font-size:38px;margin-bottom:20px}}@media (prefers-reduced-motion:reduce){.login-gate *,.login-gate :after,.login-gate :before{animation:none!important;transition:none!important}}.jonas-chat{position:relative;z-index:120;--jc-ink:#14252d;--jc-paper:#fffdf7;--jc-blue:#214be8}.jonas-chat__launcher{position:fixed;z-index:1;right:24px;bottom:calc(20px + env(safe-area-inset-bottom, 0px));display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 18px;border:1px solid var(--ink,#14252d);border-radius:999px;color:var(--ink,#14252d);box-shadow:3px 4px 0 rgb(20 37 45/16%);font-size:14px;font-weight:650;--focus:var(--jc-blue)}.jonas-chat__launcher:hover:not(:disabled){background:#183bc1}.jonas-chat__launcher:disabled{opacity:.65;cursor:default}.jonas-chat__launcher[hidden]{display:none}.jonas-chat__launcher svg{width:23px;height:23px}.jonas-chat__panel{position:fixed;right:24px;bottom:var(--jc-bottom,88px);display:flex;flex-direction:column;width:min(var(--jc-width,460px),calc(100vw - 48px));height:var(--jc-height,600px);min-height:150px;border:1px solid #aeb6b9;border-radius:20px;background:#f6f3ec;color:var(--jc-ink);box-shadow:0 16px 50px rgb(20 37 45/18%);overflow:hidden;--focus:var(--jc-blue)}.jonas-chat__panel[hidden]{display:none}.jonas-chat__panel:focus-visible{outline:2px solid var(--jc-blue);outline-offset:4px}.jonas-chat__header{display:flex;flex:none;min-height:70px;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px 11px 18px;border-bottom:1px solid #cbd0ce;color:#fffdf7}.jonas-chat__identity{display:flex;align-items:center;gap:10px}.jonas-chat__identity h2{margin:0;font-size:17px;font-weight:650;line-height:1.25;letter-spacing:-.025em}.jonas-chat__identity p{margin-top:3px;color:#cbd2d5;font-family:var(--font-mono,monospace);font-size:11px;line-height:1.3}.jonas-chat__dot{width:8px;height:8px;border-radius:50%;background:#214be8;box-shadow:0 0 0 4px rgb(33 75 232/9%)}.jonas-chat__tools{display:flex;gap:2px;--focus:#214be8}.jonas-chat__tools button{display:grid;place-items:center;width:40px;height:40px;padding:9px;border:0;border-radius:9px;background:transparent;color:inherit}.jonas-chat__tools button:hover:not(:disabled){background:rgb(255 255 255/10%)}.jonas-chat__tools button:disabled{opacity:.3;cursor:default}.jonas-chat__tools svg{width:21px;height:21px}.jonas-chat__transcript{flex:1 1;min-height:0;padding:18px 14px 14px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b1a3cb transparent}.jonas-chat__transcript:focus-visible{outline:2px solid var(--jc-blue);outline-offset:-4px}.jonas-chat__turn{display:flex;align-items:flex-start;gap:10px;min-width:0;margin:0 0 16px}.jonas-chat__turn--user{justify-content:flex-end;padding-left:44px}.jonas-chat__turn--ai:not(.is-current){padding-right:24px}.jonas-chat__message-wrap{min-width:0;max-width:100%}.jonas-chat__turn--ai.is-current .jonas-chat__message-wrap{flex:1 1;padding-top:8px}.jonas-chat__avatar{position:-webkit-sticky;position:sticky;top:4px;z-index:1;flex:none;align-self:flex-start;width:88px;height:126px;margin:0 -2px 0 -5px;color:#214be8}.jonas-chat__avatar:after{position:absolute;top:31px;right:-14px;width:12px;height:12px;border-left:1px solid #cbd0ce;border-bottom:1px solid #cbd0ce;background:var(--jc-paper);transform:rotate(45deg);content:"";pointer-events:none}.jonas-chat__avatar>div{width:100%;height:100%}.jonas-chat__bubble{position:relative;min-width:0;padding:12px 14px;border:1px solid #cbd0ce;border-radius:12px;background:var(--jc-paper);color:var(--jc-ink);font-size:14px;line-height:1.6;overflow-wrap:anywhere}.jonas-chat__turn--ai:not(.is-current) .jonas-chat__bubble{border-color:transparent;background:rgb(255 253 247/60%)}.jonas-chat__turn--user .jonas-chat__bubble{border-color:#214be8;border-radius:12px 12px 3px 12px;background:#214be8;color:#fff}.jonas-chat__bubble p{margin:0 0 10px}.jonas-chat__bubble p:last-child{margin-bottom:0}.jonas-chat__bubble ol,.jonas-chat__bubble ul{margin:7px 0 11px;padding-left:20px}.jonas-chat__bubble li{margin:4px 0}.jonas-chat__bubble ol:last-child,.jonas-chat__bubble ul:last-child{margin-bottom:0}.jonas-chat__bubble a{color:#214be8;text-decoration:underline;text-underline-offset:3px}.jonas-chat__turn--user a{color:#fff}.jonas-chat__bubble strong{font-weight:650}.jonas-chat__bubble code{padding:1px 4px;border-radius:3px;background:rgb(33 75 232/7%);font-family:var(--font-mono,monospace);font-size:.87em}.jonas-chat__bubble pre{max-width:100%;margin:9px 0;padding:10px;border:1px solid #cbd0ce;border-radius:5px;background:#eaece6;overflow-x:auto}.jonas-chat__bubble pre code{padding:0;background:transparent;white-space:pre}.jonas-chat__byline{display:block;margin-top:4px;color:#56636a;font-size:11px;line-height:1.4;text-align:right}.jonas-chat__failure{color:#8e3b2c;font-size:12px;line-height:1.5}.jonas-chat__failure:not(:first-child){margin-top:13px;padding-top:10px;border-top:1px solid #d6c8c0}.jonas-chat__failure p{margin-bottom:8px}.jonas-chat__failure button{display:inline-flex;gap:6px;align-items:center;min-height:34px;padding:4px 8px;border:1px solid #aeb6b9;border-radius:5px;background:transparent;color:var(--jc-ink);font-size:12px}.jonas-chat__failure button:hover{border-color:var(--jc-blue);background:#f6f3ec}.jonas-chat__failure svg{width:15px;height:15px}.jonas-chat__thinking{display:flex;align-items:center;gap:4px;min-width:54px;min-height:24px;padding-left:2px}.jonas-chat__thinking i{width:5px;height:5px;border-radius:50%;background:#214be8;animation:mini-jonas-thinking 1.1s ease-in-out infinite}.jonas-chat__thinking i:nth-child(2){animation-delay:.12s}.jonas-chat__thinking i:nth-child(3){animation-delay:.24s}.jonas-chat__suggestions{display:grid;grid-gap:6px;gap:6px;margin:7px 2px 3px 92px}.jonas-chat__suggestions button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px;padding:7px 10px;border:1px solid #aeb6b9;border-radius:7px;background:transparent;color:#214be8;font-size:12px;line-height:1.4;text-align:left}.jonas-chat__suggestions button:hover:not(:disabled){border-color:#214be8;background:#e8ecfb}.jonas-chat__suggestions button span{color:#214be8}.jonas-chat__new{align-self:center;flex:none;display:inline-flex;align-items:center;gap:8px;margin:-3px 0 7px;padding:5px 11px;border:1px solid #aeb6b9;border-radius:999px;background:#fffdf7;color:#214be8;font-size:11px;box-shadow:0 2px 5px rgb(20 37 45/7%)}.jonas-chat__composer{flex:none;padding:12px 13px 9px;border-top:1px solid #cbd0ce}.jonas-chat__compose-box{display:flex;align-items:flex-end;gap:6px;padding:5px;border:1px solid #8d999e;border-radius:10px;background:#fffdf7}.jonas-chat__compose-box:focus-within{border-color:var(--jc-blue);outline:2px solid rgb(33 75 232/18%);outline-offset:1px}.jonas-chat__compose-box textarea{display:block;flex:1 1;min-width:0;min-height:38px;max-height:112px;padding:8px 7px;border:0;border-radius:0;background:transparent;color:var(--jc-ink);font:inherit;font-size:14px;line-height:1.55;resize:none;overflow-y:auto}.jonas-chat__compose-box textarea:focus-visible{outline:none}.jonas-chat__compose-box textarea::placeholder{color:#56636a}.jonas-chat__send{display:grid;flex:none;place-items:center;width:38px;height:38px;padding:9px;border:1px solid #214be8;border-radius:7px;background:var(--jc-blue);color:#fff}.jonas-chat__send:disabled{opacity:.3;cursor:default}.jonas-chat__send:hover:not(:disabled){background:#183bc1}.jonas-chat__send svg{width:20px;height:20px}.jonas-chat__stop{display:inline-flex;flex:none;align-items:center;gap:5px;min-height:38px;padding:6px 8px;border:1px solid #aeb6b9;border-radius:7px;background:#eaece6;color:#14252d;font-size:11px}.jonas-chat__stop span:first-child{font-size:9px}.jonas-chat__composer-note{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;color:#56636a;font-size:11px;line-height:1.4}.jonas-chat__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes mini-jonas-thinking{0%,70%,to{opacity:.35;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}@media (max-width:700px){.jonas-chat__launcher{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));min-height:54px;padding:13px 15px;font-size:12px}.jonas-chat__panel{right:12px;width:min(var(--jc-width,460px),calc(100vw - 24px));border-radius:16px}.jonas-chat__header{min-height:64px;padding:9px 10px 9px 14px}.jonas-chat__identity h2{font-size:16px}.jonas-chat__tools button{width:38px;height:38px}.jonas-chat__transcript{padding:13px 10px 10px}.jonas-chat__turn{gap:8px;margin-bottom:13px}.jonas-chat__turn--user{padding-left:35px}.jonas-chat__turn--ai:not(.is-current){padding-right:20px}.jonas-chat__avatar{width:68px;height:104px;margin-left:-4px;margin-right:-2px}.jonas-chat__bubble{padding:10px 12px;font-size:14px;line-height:1.6}.jonas-chat__avatar:after{top:26px;right:-12px}.jonas-chat__suggestions{margin-left:69px;gap:5px}.jonas-chat__suggestions button{min-height:34px;padding:6px 8px;font-size:12px}.jonas-chat__composer{padding:10px 10px 8px}.jonas-chat__compose-box textarea{font-size:16px;line-height:1.4}.jonas-chat__composer-note{font-size:11px}}.jonas-chat[data-keyboard=true] .jonas-chat__header{min-height:52px;padding-top:5px;padding-bottom:5px}.jonas-chat[data-keyboard=true] .jonas-chat__composer{padding:8px}.jonas-chat[data-keyboard=true] .jonas-chat__composer-note{display:none}@media (max-width:360px){.jonas-chat__launcher>span{display:none}.jonas-chat__launcher{width:54px;padding:13px}.jonas-chat__avatar{width:60px;--chat-avatar-width:60px}.jonas-chat__bubble{padding:9px 10px;font-size:14px}.jonas-chat__suggestions{margin-left:61px}}@media (prefers-reduced-motion:reduce){.jonas-chat *,.jonas-chat :after,.jonas-chat :before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.jonas-chat{--focus:#214be8}.jonas-chat__launcher{width:56px;min-width:56px;min-height:56px;padding:14px;border:1px solid #214be8;border-radius:18px 18px 4px 18px;background:#214be8;color:#fff;box-shadow:3px 3px 0 rgb(20 37 45/16%)}.jonas-chat__launcher>span{display:none}.jonas-chat__launcher:hover:not(:disabled){border-color:#14252d;background:#14252d}.jonas-chat__panel{border-color:#14252d;border-radius:12px 12px 3px 12px;box-shadow:6px 6px 0 rgb(20 37 45/12%),0 16px 45px rgb(20 37 45/14%)}.jonas-chat__header{background:#14252d}.jonas-chat__dot{position:relative;width:30px;height:18px;border-radius:0;background:linear-gradient(#fffdf7,#fffdf7) center 6px/6px 1.5px no-repeat;box-shadow:none}.jonas-chat__dot:after,.jonas-chat__dot:before{content:"";position:absolute;top:0;width:14px;height:14px;border:1.5px solid #fffdf7;border-radius:50%}.jonas-chat__dot:before{left:0}.jonas-chat__dot:after{right:0}.jonas-chat__tools{--focus:#fff}.jonas-chat__tools button{border-radius:3px}.jonas-chat__bubble{border-radius:10px 10px 10px 2px}.jonas-chat__turn--ai:not(.is-current) .jonas-chat__bubble{background:#eeeee7}.jonas-chat__suggestions button{min-height:40px;border-radius:3px}.jonas-chat__composer{background:#efeee8}.jonas-chat__compose-box{border-radius:5px}.jonas-chat__send{border-radius:3px}.jonas-chat__new{min-height:36px}@media (max-width:700px){.jonas-chat__launcher{width:54px;min-width:54px;min-height:54px;padding:14px}}.jonas-chat__launcher{background:#14252d;border-color:#14252d;color:#fffefa}.jonas-chat__launcher:hover:not(:disabled){background:#273c46}.jonas-chat__tools button{width:44px;height:44px}