:root{--base: oklch(97.5% .006 240);--base-2: oklch(96% .008 240);--surface: oklch(99.5% .003 240);--surface-2: oklch(100% 0 0);--ink: oklch(26% .028 246);--ink-soft: oklch(43% .026 246);--ink-faint: oklch(50% .025 246);--ocean: oklch(36% .082 250);--ocean-deep: oklch(29% .066 252);--ocean-700: oklch(42% .09 250);--marine: oklch(52% .145 254);--marine-bright: oklch(68% .13 248);--signal: oklch(72% .17 152);--signal-deep: oklch(48% .13 152);--signal-cta: oklch(64% .16 152);--amber: oklch(78% .135 75);--amber-deep: oklch(45% .1 66);--alert: oklch(62% .18 28);--alert-deep: oklch(48% .16 28);--line: oklch(90% .012 246);--line-strong: oklch(83% .018 246);--mist: oklch(86% .02 240);--mist-soft: oklch(74% .025 240);--bg: var(--base);--text: var(--ink);--accent: var(--marine);--font-body: "Schibsted Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Spline Sans Mono", ui-monospace, "SFMono-Regular", "Menlo", monospace;--fs-caption: .75rem;--fs-small: .86rem;--fs-body: .97rem;--fs-lede: 1.05rem;--fs-title: 1.32rem;--fs-h2: clamp(1.6rem, 1.3rem + 1vw, 1.95rem);--radius: 16px;--radius-lg: 22px;--radius-sm: 10px;--radius-xs: 7px;--shadow-sm: 0 1px 2px rgba(12, 44, 77, .05), 0 4px 12px -6px rgba(12, 44, 77, .12);--shadow: 0 2px 6px rgba(12, 44, 77, .06), 0 22px 44px -22px rgba(12, 44, 77, .28);--shadow-lg: 0 6px 14px rgba(12, 44, 77, .08), 0 44px 80px -34px rgba(12, 44, 77, .4);--glow-signal: 0 0 0 4px rgba(52, 192, 106, .16);--ease-quart: cubic-bezier(.25, 1, .5, 1);--ease-expo: cubic-bezier(.16, 1, .3, 1);--ease: var(--ease-quart);--z-base: 1;--z-sticky: 50;--z-modal-backdrop: 80;--z-modal: 90;--z-banner: 100}*,*:before,*:after{box-sizing:border-box}*{margin:0}[hidden]{display:none!important}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--text);font-size:var(--fs-body);font-weight:400;line-height:1.62;letter-spacing:-.011em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv01";background:radial-gradient(125% 75% at 50% -24%,color-mix(in oklch,var(--marine) 9%,transparent),transparent 58%),repeating-linear-gradient(90deg,color-mix(in oklch,var(--line) 55%,transparent) 0 1px,transparent 1px 96px),repeating-linear-gradient(0deg,color-mix(in oklch,var(--line) 55%,transparent) 0 1px,transparent 1px 96px),var(--base);background-attachment:fixed}img,svg{display:block;max-width:100%}h1,h2,h3{font-family:var(--font-body);font-weight:800;line-height:1.06;letter-spacing:-.03em;color:var(--ink);text-wrap:balance}strong,b{font-weight:700;color:var(--ink)}::selection{background:var(--signal);color:var(--ocean-deep)}:focus-visible{outline:3px solid var(--marine);outline-offset:3px;border-radius:5px}.center{min-height:100%;display:grid;place-items:center;padding:clamp(1.1rem,4vw,2.5rem)}.card{position:relative;width:100%;max-width:420px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.6rem,1.1rem + 2vw,2.4rem);box-shadow:var(--shadow-lg);animation:card-rise .7s var(--ease-expo) both}.card:before{content:"";position:absolute;inset:0 0 auto;height:8px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(var(--line),var(--line)) 0 100% / 100% 1px no-repeat,repeating-linear-gradient(90deg,var(--line-strong) 0 1px,transparent 1px 26px) 0 0 / 100% 7px no-repeat;opacity:.8;pointer-events:none}@keyframes card-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.wordmark{display:inline-flex;align-items:flex-end;gap:.26rem;font-family:var(--font-body);font-weight:800;font-size:1.32rem;letter-spacing:-.04em;line-height:1;color:var(--ink);margin-bottom:1.4rem}.wordmark-dot{width:.4em;height:.4em;border-radius:50%;background:var(--signal);margin-bottom:.1em;flex-shrink:0;transition:box-shadow .18s var(--ease)}.wordmark-link{text-decoration:none;color:inherit;cursor:pointer;border-radius:var(--radius-xs);transition:opacity .18s var(--ease)}.wordmark-link:hover{opacity:.82}.wordmark-link:hover .wordmark-dot{box-shadow:var(--glow-signal)}.wordmark-link:focus-visible{outline:2px solid var(--marine);outline-offset:4px}.brand{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.03em;line-height:1.08;margin:0 0 .45rem;text-wrap:balance}.subtitle{color:var(--ink-soft);font-size:var(--fs-lede);line-height:1.5;margin:0 0 1.6rem;text-wrap:pretty}.readout{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:var(--fs-caption);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--marine)}.readout .tick{width:7px;height:7px;border-radius:50%;background:var(--signal);box-shadow:var(--glow-signal)}.field{margin-bottom:.95rem}.field label{display:block;font-size:var(--fs-small);font-weight:500;color:var(--ink-soft);margin-bottom:.42rem}.input{width:100%;padding:.72rem .85rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.3;outline:none;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}.input::placeholder{color:var(--ink-faint)}.input:hover{border-color:var(--ink-faint)}.input:focus{border-color:var(--marine);box-shadow:0 0 0 3px color-mix(in oklch,var(--marine) 16%,transparent)}.btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--font-body);font-weight:650;font-size:.96rem;letter-spacing:-.012em;line-height:1;padding:.82rem 1.4rem;border-radius:11px;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .4s var(--ease-expo),box-shadow .4s var(--ease),background .22s var(--ease),border-color .22s var(--ease),color .22s var(--ease),opacity .22s var(--ease)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--signal);color:var(--ocean-deep);box-shadow:0 1px #fff6 inset,var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--signal-cta);transform:translateY(-2px);box-shadow:0 1px #fff6 inset,var(--shadow),var(--glow-signal)}.btn-solid{background:var(--ocean);color:var(--base);box-shadow:var(--shadow-sm)}.btn-solid:hover:not(:disabled){background:var(--ocean-700);transform:translateY(-2px);box-shadow:var(--shadow)}.btn-oauth{background:var(--surface);color:var(--ink);border-color:var(--line-strong);margin-bottom:0}.btn-oauth:hover:not(:disabled){background:var(--base-2);border-color:var(--ink-faint);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface);border-color:var(--ink-faint);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-danger{background:color-mix(in oklch,var(--alert) 10%,var(--surface));color:var(--alert-deep);border-color:color-mix(in oklch,var(--alert) 32%,transparent)}.btn-danger:hover:not(:disabled){background:color-mix(in oklch,var(--alert) 16%,var(--surface));border-color:color-mix(in oklch,var(--alert) 48%,transparent)}.divider{display:flex;align-items:center;gap:.85rem;color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;margin:1.15rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.error{display:flex;gap:.55rem;background:color-mix(in oklch,var(--alert) 9%,var(--surface));border:1px solid color-mix(in oklch,var(--alert) 30%,transparent);color:var(--alert-deep);padding:.7rem .85rem;border-radius:var(--radius-sm);font-size:var(--fs-small);line-height:1.45;margin-bottom:1rem}.error:before{content:"";flex:none;width:7px;height:7px;margin-top:.42rem;border-radius:50%;background:var(--alert)}.notice{display:flex;gap:.55rem;background:color-mix(in oklch,var(--signal) 13%,var(--surface));border:1px solid color-mix(in oklch,var(--signal) 32%,transparent);color:var(--signal-deep);padding:.7rem .85rem;border-radius:var(--radius-sm);font-size:var(--fs-small);line-height:1.45;margin-bottom:1rem}.notice:before{content:"";flex:none;width:7px;height:7px;margin-top:.42rem;border-radius:50%;background:var(--signal)}.switch{text-align:center;font-size:var(--fs-small);color:var(--ink-soft);margin-top:1.3rem}.link-btn{background:none;border:none;color:var(--marine);cursor:pointer;font-family:var(--font-body);font-size:inherit;font-weight:650;padding:0;border-radius:3px;box-shadow:inset 0 -1px color-mix(in oklch,var(--marine) 40%,transparent);transition:box-shadow .18s var(--ease)}.link-btn:hover{box-shadow:inset 0 -2px 0 var(--marine)}.spacer{height:.5rem}.mt{margin-top:.85rem}.forgot{text-align:right;margin-top:.7rem}.forgot .link-btn{font-size:var(--fs-small)}.badge,.chip{display:inline-flex;align-items:center;gap:.42rem;font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.04em;padding:.32rem .62rem;border-radius:999px;white-space:nowrap;vertical-align:middle}.badge:before,.chip .dot{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.badge,.chip--ok{color:var(--signal-deep);background:color-mix(in oklch,var(--signal) 18%,transparent)}.chip--due{color:var(--amber-deep);background:color-mix(in oklch,var(--amber) 26%,transparent)}.chip--over{color:var(--alert-deep);background:color-mix(in oklch,var(--alert) 15%,transparent)}.chip--queued{color:var(--ink-faint);background:var(--base-2)}.home-meta{font-size:var(--fs-small);color:var(--ink-soft);margin:.3rem 0 1.5rem;word-break:break-word}.input-wrap{position:relative}.input-wrap .input{padding-right:58px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--ink-faint);font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;padding:.4rem .5rem;border-radius:7px;transition:color .18s var(--ease)}.pw-toggle:hover{color:var(--marine)}.help-text{font-size:var(--fs-caption);color:var(--ink-faint);margin:.45rem 0 0}.caps-warn{color:var(--amber-deep);font-weight:500}.step2{animation:step-reveal .32s var(--ease-expo) both}@keyframes step-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.email-summary{display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.58rem .85rem;margin-bottom:.95rem;background:var(--base-2);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--fs-small)}.email-summary-addr{min-width:0;color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.email-summary .link-btn{flex:none}.step2-row{display:flex;align-items:center;justify-content:space-between;gap:.85rem;margin-top:.85rem}.step2-row .link-btn{font-size:var(--fs-small)}.remember{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-small);color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.remember input{width:1.05rem;height:1.05rem;accent-color:var(--signal);cursor:pointer;flex:none}.remember input:focus-visible{outline:2px solid var(--marine);outline-offset:2px}.offline-banner{position:fixed;inset:0 0 auto;z-index:var(--z-banner);display:flex;align-items:center;justify-content:center;gap:.55rem;background:var(--ocean-deep);color:var(--mist);border-bottom:1px solid color-mix(in oklch,var(--marine) 40%,transparent);text-align:center;font-size:var(--fs-small);padding:.55rem 1rem}.offline-banner:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--amber);flex:none}.spinner-row{display:flex;align-items:center;justify-content:center;gap:.62rem;color:var(--ink-soft);font-size:var(--fs-small)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--marine);animation:spin .8s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:color-mix(in oklch,var(--ocean-deep) 55%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:grid;place-items:center;padding:clamp(1.1rem,4vw,2rem);z-index:var(--z-modal-backdrop);animation:fade .2s var(--ease) both}.modal{width:100%;max-width:430px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,1.1rem + 1.6vw,1.9rem);box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:modal-rise .32s var(--ease-expo) both}@keyframes fade{0%{opacity:0}}@keyframes modal-rise{0%{opacity:0;transform:translateY(10px) scale(.99)}}.slow-state{text-align:center;margin-top:1rem}.slow-state .subtitle{margin:0 0 .75rem}.danger-zone{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--line)}.danger-label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);margin:0 0 .7rem}.dock-shell{min-height:100%;display:grid;grid-template-columns:clamp(300px,26vw,364px) 1fr}.dock-side{position:relative;display:flex;flex-direction:column;gap:1.5rem;padding:clamp(1.5rem,1.1rem + 1.4vw,2.2rem);color:var(--mist);background:linear-gradient(180deg,var(--ocean) 0%,var(--ocean-deep) 100%);border-right:1px solid color-mix(in oklch,var(--marine) 34%,transparent)}.dock-side .wordmark{color:var(--base);margin-bottom:0}.dock-side-top{display:flex;flex-direction:column;gap:.7rem}.dock-side .readout{color:var(--mist)}.dock-side-email{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--base);word-break:break-all;line-height:1.4}.dock-side-note{font-size:var(--fs-small);line-height:1.5;color:var(--mist-soft);max-width:34ch}.notice-dark{display:flex;gap:.55rem;font-size:var(--fs-small);line-height:1.45;color:var(--base);background:color-mix(in oklch,var(--alert) 22%,transparent);border:1px solid color-mix(in oklch,var(--alert) 45%,transparent);padding:.65rem .8rem;border-radius:var(--radius-sm)}.notice-dark:before{content:"";flex:none;width:7px;height:7px;margin-top:.42rem;border-radius:50%;background:var(--alert)}.notice-dark .link-btn{color:var(--base);box-shadow:inset 0 -1px #ffffff80}.dock-side-actions{margin-top:auto;display:flex;flex-direction:column;gap:1.2rem}.dock-side-danger{padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.14)}.dock-side-danger .danger-label{color:var(--mist-soft)}.btn-light{background:var(--base);color:var(--ocean-deep);box-shadow:var(--shadow-sm)}.btn-light:hover:not(:disabled){background:var(--surface-2);transform:translateY(-1px);box-shadow:var(--shadow)}.btn-danger-ghost{background:transparent;color:color-mix(in oklch,var(--alert) 65%,white);border-color:color-mix(in oklch,var(--alert) 45%,transparent)}.btn-danger-ghost:hover:not(:disabled){background:color-mix(in oklch,var(--alert) 16%,transparent);border-color:color-mix(in oklch,var(--alert) 65%,transparent)}.dock-stage{position:relative;overflow:hidden;display:grid;align-content:center;padding:clamp(1.6rem,1rem + 3vw,3.6rem) clamp(1.4rem,1rem + 3vw,4rem);min-height:100vh}.dock-depth{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.dock-stage-inner{position:relative;z-index:var(--z-base);width:100%;max-width:760px;margin-inline:auto}.readout--work .tick{background:var(--amber);box-shadow:0 0 0 4px color-mix(in oklch,var(--amber) 22%,transparent)}.dock-stage-title{font-size:clamp(2.3rem,1.4rem + 3.4vw,3.6rem);font-weight:900;letter-spacing:-.038em;line-height:1.02;margin:1rem 0 .9rem;text-wrap:balance}.dock-stage-lede{font-size:var(--fs-lede);line-height:1.5;color:var(--ink-soft);max-width:52ch;margin:0 0 clamp(1.2rem,3vw,2.2rem)}.dock-float{position:absolute;top:clamp(1.1rem,3vw,2rem);right:clamp(1.1rem,3vw,2.4rem);z-index:2;display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--amber-deep);background:color-mix(in oklch,var(--amber) 22%,var(--surface-2));border:1px solid color-mix(in oklch,var(--amber) 38%,transparent);padding:.4rem .75rem;border-radius:999px;box-shadow:var(--shadow-sm)}.dock-float .dot{width:7px;height:7px;border-radius:50%;background:var(--amber);animation:pulse 2.4s var(--ease) infinite}.scene{display:block;width:100%;max-width:720px;height:auto;margin-inline:auto}.scene .ln-fill{fill:var(--surface-2)}.scene-boat{transform-box:fill-box;transform-origin:center;animation:boat-bob 7s var(--ease) infinite}@keyframes boat-bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-.5deg)}}.scene-load{transform-box:fill-box;transform-origin:top center;animation:load-sway 5.5s var(--ease) infinite}@keyframes load-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.scene-wrench{transform-box:fill-box;transform-origin:30% 70%;animation:wrench-turn 1.7s var(--ease) infinite}@keyframes wrench-turn{0%,to{transform:rotate(-16deg)}55%{transform:rotate(22deg)}}.scene-spark{transform-box:fill-box;transform-origin:center;animation:spark .85s steps(3,end) infinite}.scene-spark.s2{animation-delay:.28s}.scene-spark.s3{animation-delay:.5s}@keyframes spark{0%{opacity:0;transform:translate(0) scale(.6)}30%{opacity:1}to{opacity:0;transform:translate(7px,5px) scale(1)}}.scene-code .ln{transform-box:fill-box;transform-origin:left center;animation:type 3.6s steps(1,end) infinite}.scene-code .ln2{animation-delay:.5s}.scene-code .ln3{animation-delay:1s}@keyframes type{0%,6%{transform:scaleX(0)}18%,78%{transform:scaleX(1)}90%,to{transform:scaleX(1)}}.scene-caret{animation:caret 1s steps(2,start) infinite}@keyframes caret{50%{opacity:0}}.scene-sea{transform-box:fill-box;animation:sea-drift 16s linear infinite alternate}@keyframes sea-drift{to{transform:translate(-22px)}}.scene-steam{transform-box:fill-box;transform-origin:center bottom;animation:steam 4s var(--ease) infinite}@keyframes steam{0%{opacity:0;transform:translateY(4px) scale(.8)}40%{opacity:.5}to{opacity:0;transform:translateY(-12px) scale(1.15)}}@media(max-width:900px){.dock-shell{grid-template-columns:1fr}.dock-side{border-right:0;border-bottom:1px solid color-mix(in oklch,var(--marine) 34%,transparent)}.dock-side-actions{margin-top:1.4rem}.dock-stage{min-height:auto;padding-block:clamp(2rem,8vw,3.4rem)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.spinner{animation:spin 2.4s linear infinite!important}.scene-boat,.scene-load,.scene-wrench,.scene-spark,.scene-sea,.scene-steam{animation:none!important;transform:none!important}.scene-code .ln{animation:none!important;transform:scaleX(1)!important}.scene-spark{opacity:1!important}}
