@font-face{font-family:Doto;src:url(/fonts/doto.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--black: #000;--white: #fff;--soft: #a8a8a8;--margin: clamp(16px, 2.6vw, 40px);color-scheme:dark}body[data-light]{--black: #fff;--white: #000;--soft: #5a5a5a;color-scheme:light}*{box-sizing:border-box}html{background:#000}html[data-light]{background:#fff}body{margin:0;background:var(--black);color:var(--white);font:400 clamp(17px,1.3vw,20px) / 1.5 "Familjen Grotesk",system-ui,sans-serif;overflow-x:clip}a{color:inherit;text-underline-offset:4px}:focus-visible{outline:2px solid var(--white);outline-offset:3px}.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;letter-spacing:0}.linklike{padding:0;border:0;background:none;color:var(--white);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.bar{position:relative;z-index:5;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px var(--margin)}.wordmark{font:500 14px JetBrains Mono,ui-monospace,monospace;text-decoration:none}#readout{color:var(--soft)}h1,h2{margin:0 0 14px;font-weight:700;letter-spacing:-.035em;line-height:.98}h1{font-size:clamp(46px,7.4vw,124px)}h2{font-size:clamp(34px,4.4vw,72px)}p{margin:0 0 12px}ul,ol{margin:0 0 16px;padding:0 0 0 1.2em}li{margin-bottom:6px}.action{padding:12px 22px;border:0;border-radius:2px;background:var(--white);color:var(--black);font:700 16px Familjen Grotesk,system-ui,sans-serif;cursor:pointer;transition:transform .45s cubic-bezier(.2,1.4,.4,1),background-color .2s}.action:hover{transform:translateY(-2px)}.action:active{transform:translateY(1px)}.view{padding:0;border:0;background:none;color:var(--white);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.crossing{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:14px}.crossing p{margin:0;color:var(--soft)}#stage,#notify,.view,#contact-close,#contact-link,#pull,#crank,.note-line{display:none}.caption,.details-only,.contact{max-width:46em;padding:36px var(--margin)}.contact h2{font-size:clamp(38px,5.4vw,88px)}form{display:grid;gap:12px;max-width:34em;margin:18px 0}label{display:grid;gap:4px;font-size:15px;color:var(--soft)}input,textarea{width:100%;padding:10px 12px;border:1px solid #5a5a5a;border-radius:2px;background:#0b0b0b;color:var(--white);font:inherit}input:focus,textarea:focus{outline:2px solid var(--white);outline-offset:0;border-color:var(--white)}form .action{justify-self:start}#form-status{min-height:1.5em;margin:0;color:var(--soft)}.socials{display:flex;gap:20px;font-size:20px;font-weight:500}.skills{margin:18px 0 0}.skills div{display:flex;flex-wrap:wrap;gap:0 10px;margin-bottom:4px}dt{color:var(--soft);min-width:7.5em}dd{margin:0}.story #stage{display:block;position:fixed;inset:0;width:100%;height:100lvh;z-index:0}.story .bar{position:fixed;top:0;left:0;right:0}.story #contact-link,.story #contact-close,.story .view{display:inline-block}.story #contact-link[hidden],.story #contact-close[hidden],.story .view[hidden]{display:none}.story main{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden}.story .caption{position:absolute;left:0;bottom:0;width:100%;max-width:44em;padding:0 var(--margin) clamp(22px,5svh,48px);opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s,transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(14px)}.story .caption.on{opacity:1;visibility:visible;transform:none}.story .caption a,.story .caption button{pointer-events:auto}.story .line{font-size:clamp(20px,2vw,30px);line-height:1.25;max-width:24em}.note p{margin:0;color:var(--soft);font-size:14px}.note strong{color:var(--white)}#narrator{display:none}.story #narrator{display:block;position:fixed;z-index:4;top:12svh;left:0;right:0;margin:0;padding:0 var(--margin);text-align:center;font-size:clamp(28px,4vw,60px);font-weight:700;letter-spacing:-.03em;pointer-events:none;opacity:0}.story #narrator.show{animation:narrate 2.4s ease both}.story #narrator.stay{animation:none;opacity:1}@keyframes narrate{0%{opacity:0;transform:scale(.97)}10%{opacity:1;transform:none}22%{opacity:.45}34%{opacity:1}80%{opacity:1}to{opacity:0}}#cross-status.pulse{animation:pulse .5s ease 3;color:var(--white)}@keyframes pulse{50%{opacity:.25}}.story #fixed{top:58px;bottom:auto;padding-bottom:0}.story #fixed .line{max-width:13em}.story .details,.story .details-only{display:none}.story #pull,.story #crank{display:inline-block}.story #pull[hidden],.story #crank[hidden]{display:none}.story #crank{touch-action:none;user-select:none;-webkit-user-select:none}.story .note-line{display:block;color:var(--soft)}.story #fixed .note-line[hidden]{display:none}.story #fixed .line{margin-bottom:8px}.story #crank{margin-top:4px}.story #pull{animation:arrive .6s ease both}@keyframes arrive{0%{opacity:0;transform:translateY(6px)}}.story #erp{top:54px;left:var(--margin);width:min(38em,calc(100vw - 2 * var(--margin)));padding:16px 18px;background:#031434d6}.story #erp h2{font-size:clamp(30px,3.6vw,56px)}@media(pointer:coarse){body.story{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body.story input,body.story textarea{-webkit-user-select:text;user-select:text}}#hold-hint{display:none}.story #hold-hint{display:block;position:fixed;z-index:3;left:0;right:0;bottom:16px;margin:0;text-align:center;color:var(--soft);pointer-events:none}.story #hold-hint[hidden]{display:none}.close-button{position:absolute;top:14px;right:14px;padding:8px 12px;border:1px solid #666;border-radius:2px;background:#111;color:#fff;cursor:pointer}.close-button:hover{background:#2a2a2a}.story #contact-dialog .contact{position:relative}.story #contact-dialog h2{padding-right:70px}.story #contact-dialog[open]{animation:pop .4s cubic-bezier(.16,1,.3,1) both}#contact-dialog[open]::backdrop{animation:fade .4s ease both}@keyframes pop{0%{opacity:0;transform:translateY(14px) scale(.98)}}@keyframes fade{0%{opacity:0}}.story #erp{top:56px;bottom:auto;padding-bottom:18px}.story #top{visibility:visible;opacity:1;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}.story #contact-dialog{width:min(680px,calc(100vw - 32px));max-height:calc(100svh - 32px);padding:0;overflow-y:auto;border:1px solid #555;background:#050505;color:#fff}.story #contact-dialog .contact{padding:28px;max-width:none}#contact-dialog::backdrop{background:#0009}.story #contact-dialog h2{font-size:clamp(30px,4vw,50px)}.story #contact-dialog input,.story #contact-dialog textarea{background:#0b0b0b;color:#fff}.story #contact-dialog .action{background:#fff;color:#000}.story #contact-dialog .linklike,.story #contact-dialog a{color:#fff}.story #contact-dialog dt,.story #contact-dialog label,.story #contact-dialog #form-status{color:#a8a8a8}#notify{position:fixed;z-index:4;right:var(--margin);top:58px;width:min(320px,calc(100vw - 2 * var(--margin)));padding:12px 14px;border:0;border-radius:12px;background:var(--white);color:var(--black);font:inherit;text-align:left;cursor:pointer;transform:translateY(calc(-100% - 80px));visibility:hidden;transition:transform .7s cubic-bezier(.16,1,.3,1),visibility 0s .7s}.story #notify{display:block}.story #notify[hidden]{display:none}#notify.up{transform:none;visibility:visible;transition-delay:0s}#notify:focus-visible{outline-offset:2px}#notify strong,#notify span,#notify em{display:block;font-style:normal}#notify em{margin-top:4px;color:#555}#overlay{width:min(900px,calc(100vw - 32px));max-height:calc(100svh - 48px);margin:auto auto 24px;padding:26px;border:1px solid #555;border-radius:4px;background:#050505;color:#fff;overflow-y:auto;cursor:pointer}#overlay::backdrop{background:#00000073}#overlay h2{font-size:clamp(30px,4vw,48px)}#overlay .linklike,#overlay a{color:#fff}#overlay .linklike{margin-top:6px;text-decoration:none;opacity:.75}@media(max-width:899px){.story .caption{font-size:16px}h1{font-size:clamp(40px,12vw,80px)}h2{font-size:clamp(30px,8.5vw,52px)}}@media(prefers-reduced-motion:reduce){.action,.story .caption,#notify{transition:none}.story #narrator.show{animation:none;opacity:1}.story #pull,.story #contact-dialog[open],#contact-dialog[open]::backdrop{animation:none}#cross-status.pulse{animation:none}}@media(max-width:899px){.story #fixed{top:auto;bottom:0;padding-bottom:calc(84px + env(safe-area-inset-bottom))}body[data-light] #fixed{top:auto;bottom:0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}body[data-light] #fixed #restart{margin-top:6px}.story #fixed .line{max-width:none;font-size:20px}}.contact .contact-inner{border:1px solid #4a4a4a;background:#070707}.term-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid #333;background:#111;color:#cfcfcf}.lights{display:inline-flex;gap:6px}.lights i{width:10px;height:10px;border-radius:50%}.lights i:nth-child(1){background:#b5453a}.lights i:nth-child(2){background:#c49c40}.lights i:nth-child(3){background:#4f9a6b}.term-bar .close-button{position:static;margin-left:auto;padding:4px 8px;border:1px solid #666}.term-body{padding:22px clamp(16px,4vw,30px) 26px;background-color:#070707;background-image:radial-gradient(#333 1px,transparent 1.5px);background-size:12px 12px}.term-log{display:grid;gap:2px;margin:0 0 18px;color:#a8a8a8}.term-log b,.term-cmd b{color:#fff;font-weight:700}.term-log .ok{color:#6fbd8b}.term-log .warn{color:#d2ad55}.contact h2,.story #contact-dialog h2{margin-bottom:8px;padding-right:0;font-family:Doto,JetBrains Mono,monospace;font-weight:900;font-size:clamp(38px,5.6vw,58px);line-height:1.04;letter-spacing:-.02em}.term-lead{margin-bottom:18px;font-size:clamp(18px,2vw,22px)}.contact form{gap:10px;margin:0 0 18px;max-width:none}.contact label{grid-template-columns:6.5em 1fr;align-items:start;gap:8px;color:#cfcfcf!important}.contact label span{padding-top:9px}.contact label span:before{content:"> ";color:#777}.contact input,.contact textarea{border:1px solid #444;background:#000!important;font:14px JetBrains Mono,ui-monospace,monospace}.term-send{justify-self:start;padding:10px 16px;border:0;background:#fff;color:#000;font-weight:700;cursor:pointer;transition:transform .3s cubic-bezier(.2,1.4,.4,1)}.term-send:hover{transform:translateY(-2px)}.contact .socials{gap:18px;margin-bottom:18px;font-size:15px}.term-stack{padding-top:14px;border-top:1px dashed #3a3a3a}.term-cmd{margin:0 0 8px;color:#a8a8a8}.contact .skills{margin:0}.contact .skills dd{color:#e4e4e4}.story #contact-dialog{width:min(720px,calc(100vw - 24px));border:0;background:transparent}.story #contact-dialog .contact{padding:0}.story #contact-dialog .contact-inner{padding-top:0}#contact-dialog::backdrop{background-color:#000000b8}@media(max-width:520px){.contact label{grid-template-columns:1fr;gap:2px}.contact label span{padding-top:0}}@media(prefers-reduced-motion:reduce){.term-send{transition:none}#form-status[popover]:popover-open,#chapters[open]{animation:none}}.trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.term-send:disabled{opacity:.5;cursor:progress;transform:none}#form-status[popover]{position:fixed;inset:auto 24px 24px auto;width:auto;max-width:min(360px,calc(100vw - 32px));min-height:0;margin:0;padding:12px 16px;border:1px solid #444;border-left:3px solid #a8a8a8;background:#0b0b0b;color:#e4e4e4}#form-status[popover]:popover-open{animation:toast-in .4s cubic-bezier(.16,1,.3,1) both}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)}}#form-status[data-outcome=sent]{border-left-color:#6fbd8b}#form-status[data-outcome=failed],#form-status[data-outcome=invalid],#form-status[data-outcome=notConnected]{border-left-color:#d2ad55}@media(max-width:520px){#form-status[popover]{inset:auto 16px calc(16px + env(safe-area-inset-bottom)) 16px;max-width:none}}.term-log .no{color:#c0675d}.story #readout{padding:0;border:0;background:none;color:var(--soft);cursor:pointer}.story #readout:hover{color:var(--white)}#readout[hidden],#restart{display:none}.story #restart{display:block;margin-top:10px}.story #restart[hidden]{display:none}#chapters{width:min(440px,calc(100vw - 32px));margin:64px auto auto;padding:0;border:1px solid #4a4a4a;background:#070707;color:#e4e4e4}#chapters::backdrop{background:#0009}#chapters[open]{animation:pop .35s cubic-bezier(.16,1,.3,1) both}.chapters-head{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid #333;background:#111;color:#a8a8a8}.chapters-head .close-button{position:static;margin-left:auto;padding:4px 8px}#chapters ol{margin:0;padding:8px 0;list-style:none}#chapters li{display:flex;align-items:center;margin:0}#chapters li button{padding:10px 14px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}#chapters li button:first-child{flex:1}#chapters li button:hover{background:#161616}#chapters .peek{color:#a8a8a8;text-decoration:underline;text-underline-offset:4px}#boat-tag{display:none}.story #boat-tag{display:block;position:fixed;z-index:3;left:0;top:0;padding:4px 6px;border:0;background:none;color:#ffffff80;font-size:11px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .6s,color .2s}.story #boat-tag:after{content:"";display:block;width:1px;height:14px;margin:4px auto 0;background:#ffffff4d}.story #boat-tag.on{opacity:1;pointer-events:auto}.story #boat-tag:hover{color:#fff}.story #boat-tag[hidden]{display:none}
