/* Gren guides: the app's colours and type, laid out for reading. Fonts are Gren's own copies (see /fonts). */
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-400-latin-ext.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:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF, 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:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-500-latin-ext.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:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF, 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:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-mono-600-latin-ext.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:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-mono-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF, 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:"Schibsted Grotesk";font-style:normal;font-weight:400 700;font-display:swap;src:url("/fonts/schibsted-grotesk-var-latin-ext.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:"Schibsted Grotesk";font-style:normal;font-weight:400 700;font-display:swap;src:url("/fonts/schibsted-grotesk-var-latin.woff2") format("woff2");unicode-range:U+0000-00FF, 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;}
:root{
  --bg:#131515;--surface:#1C1E1E;--raised:#262828;--fill:rgba(255,255,255,.065);
  --ink:#F5F5F7;--ink-2:#C7C7CC;--ink-3:#98989D;--line:rgba(255,255,255,.1);
  --accent:#7CC39C;--accent-fill:#58A079;--accent-soft:rgba(88,160,121,.16);--on-accent:#08170F;
  --bar-a:#4FA37A;--bar-b:#B3EDCB;--danger:#FF9F8A;--danger-soft:rgba(255,120,95,.14);
  --sty:rgba(255,159,138,.16);--sty-line:rgba(255,159,138,.8);
  --ui:-apple-system,BlinkMacSystemFont,"SF Pro Text","Schibsted Grotesk",ui-sans-serif,system-ui,"Segoe UI",sans-serif;
  --display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Schibsted Grotesk",ui-sans-serif,system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  color-scheme:dark;
}
[data-theme="light"]{
  --bg:#FFFFFF;--surface:#F4F4F2;--raised:#FFFFFF;--fill:rgba(0,0,0,.055);
  --ink:#1D1D1F;--ink-2:#3A3A3C;--ink-3:#6E6E73;--line:rgba(0,0,0,.1);
  --accent:#1B4332;--accent-fill:#1B4332;--accent-soft:rgba(27,67,50,.08);--on-accent:#FFFFFF;
  --bar-a:#1B4332;--bar-b:#2E6B4C;--danger:#C0392B;--danger-soft:rgba(192,57,43,.09);
  --sty:rgba(192,57,43,.1);--sty-line:rgba(192,57,43,.6);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.65 var(--ui);-webkit-font-smoothing:antialiased;}
a{color:var(--accent);text-underline-offset:3px;}
a:hover{text-decoration-thickness:2px;}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;}
::selection{background:var(--accent-soft);}

.top,main,.foot{width:min(46rem,100%);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:6px;}
.brand{font:600 18px/1 var(--mono);letter-spacing:-.02em;color:var(--ink);text-decoration:none;}
.brand b{color:var(--accent-fill);font-weight:600;}
.top nav{display:flex;align-items:center;gap:18px;font-size:15px;font-weight:600;}
.top nav a:not(.btn){text-decoration:none;}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 18px;border-radius:999px;
  background:var(--accent-fill);color:var(--on-accent);font:600 15px/1 var(--ui);text-decoration:none;}
.btn:hover{filter:brightness(1.08);}

main{padding-bottom:40px;}
.crumbs{margin:26px 0 10px;font-size:14px;color:var(--ink-3);}
.crumbs a{color:var(--ink-3);}
h1{margin:0 0 14px;font:700 clamp(30px,5.6vw,42px)/1.15 var(--display);letter-spacing:-.025em;}
h2{margin:46px 0 10px;font:700 25px/1.25 var(--display);letter-spacing:-.02em;}
h3{margin:26px 0 6px;font:600 19px/1.35 var(--display);letter-spacing:-.01em;}
p,ul,ol{margin:0 0 16px;}
ul,ol{padding-left:24px;}
li{margin:5px 0;}
strong{font-weight:600;}
.lede{font-size:20px;line-height:1.6;color:var(--ink-2);}
.meta{font-size:14px;color:var(--ink-3);}
code,kbd{font:500 .84em/1 var(--mono);padding:2px 6px;border-radius:6px;background:var(--fill);white-space:nowrap;}
kbd{box-shadow:inset 0 -1px 0 var(--line);}
.steps li{padding-left:4px;}

.wrap{overflow-x:auto;margin:10px 0 22px;}
table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.45;}
caption{caption-side:top;text-align:left;padding:0 0 8px;font-size:14px;color:var(--ink-3);}
th,td{padding:10px 14px 10px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
thead th{font-size:14px;font-weight:600;color:var(--ink-3);}
tbody th{font-weight:600;}
.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
thead .n{white-space:normal;}

figure{margin:26px 0;padding:22px 20px 16px;border-radius:18px;background:var(--surface);border:1px solid var(--line);}
figcaption{margin-top:14px;font-size:14px;line-height:1.5;color:var(--ink-3);}
.eg{margin:12px 0 18px;padding:14px 18px;border-radius:14px;background:var(--surface);border:1px solid var(--line);}
.eg p{margin:0;}
.eg .was{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--danger);}
.eg .now{margin-top:6px;}
.eg .was::before,.eg .now::before{display:inline-block;width:58px;font-size:13px;font-weight:600;text-decoration:none;}
.eg .was::before{content:"Before";color:var(--danger);}
.eg .now::before{content:"After";color:var(--accent);}

/* pictures of Gren, drawn in HTML so they stay sharp and follow the theme */
.mock-toast{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;width:fit-content;max-width:100%;margin:0 auto;padding:6px 6px 6px 16px;
  border-radius:22px;background:var(--raised);box-shadow:0 10px 30px -12px rgba(0,0,0,.55),inset 0 0 0 1px var(--line);font-size:15px;font-weight:600;line-height:1.4;}
.mock-toast .act{padding:6px 13px;border-radius:999px;background:var(--accent-fill);color:var(--on-accent);font-size:14px;}
.mock-panel,.mock-note{max-width:340px;margin:0 auto;}
.mp-title{margin:0 0 10px;font-size:15px;font-weight:600;}
.mp-title .n{color:var(--danger);margin-left:4px;}
.mp-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin:10px 0;font-size:14px;}
.mp-row span:last-child{color:var(--ink-3);font-variant-numeric:tabular-nums;}
.mp-row i{grid-column:1/-1;display:block;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--bar-a),var(--bar-b)) 0 0/var(--w) 100% no-repeat,var(--fill);}
.mp-row.over span:last-child{color:var(--danger);font-weight:600;}
.mp-row.over i{background:var(--danger);}
.mock-note p{margin:0 0 16px;font-size:17px;line-height:1.7;}
.mock-note mark{color:inherit;background:var(--sty);box-shadow:inset 0 -2px 0 var(--sty-line);border-radius:2px;}
.mp-line{display:flex;justify-content:space-between;gap:10px;margin:6px 0;font-size:14px;color:var(--ink-2);}
.mp-line .fix{color:var(--accent);font-weight:600;}
.mock-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.mock-tiles div{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:12px;background:var(--fill);}
.mock-tiles b{font-size:20px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums;}
.mock-tiles span{font-size:12.5px;color:var(--ink-3);}
/* before and after, side by side (one above the other on phones) */
.mock-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.mp-pane{min-width:0;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);}
.mp-label{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--ink-3);}
.mp-pane.after .mp-label{color:var(--accent);}
.mp-text,.mp-lines{font-size:14px;line-height:1.6;overflow-wrap:anywhere;}
.mp-text{white-space:pre-wrap;}
.mp-text p{margin:0 0 1.6em;white-space:normal;}
.mp-text p:last-child{margin-bottom:0;}
.mp-text.code{font:13px/1.6 var(--mono);}
.mp-lines span{display:block;}
.mp-lines .brk::after{content:"\00A0\21B5";color:var(--danger);font-weight:600;}
.mp-lines .gap{height:1.6em;}
/* Gren's command list */
.mock-pal{max-width:380px;margin:0 auto;padding:8px;border-radius:18px;background:var(--raised);box-shadow:0 10px 30px -12px rgba(0,0,0,.55),inset 0 0 0 1px var(--line);}
.mock-pal .q{margin-bottom:4px;padding:9px 12px;border-radius:12px;background:var(--fill);font-size:15px;}
.mock-pal .it{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 12px;border-radius:10px;font-size:15px;}
.mock-pal .it b{font-weight:600;}
.mock-pal .it span{color:var(--ink-3);font-size:13.5px;text-align:right;}
.mock-pal .it.on{background:var(--accent-soft);}

.cta{display:flex;align-items:center;flex-wrap:wrap;gap:14px 20px;margin:40px 0;padding:22px 24px;border-radius:20px;background:var(--accent-soft);}
.cta p{flex:1 1 300px;margin:0;}
.faq h3{margin-top:22px;}
.more{margin-top:44px;padding-top:6px;border-top:1px solid var(--line);}
.more h2{margin-top:30px;font-size:20px;}
.more ul{padding-left:20px;}
.cards{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:12px;}
.cards a{display:block;padding:18px 20px;border-radius:18px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;}
.cards a:hover{border-color:var(--accent);}
.cards strong{display:block;margin-bottom:4px;font:600 19px/1.35 var(--display);color:var(--accent);}
.cards span{display:block;font-size:16px;line-height:1.5;color:var(--ink-2);}

.foot{padding-top:22px;padding-bottom:calc(36px + env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:15px;color:var(--ink-3);}
.foot p{margin:0 0 8px;}

@media (max-width:560px){
  body{font-size:17px;}
  .lede{font-size:18.5px;}
  h2{font-size:23px;}
  .top nav{gap:14px;}
  .mock-tiles b{font-size:17px;}
  .mock-pair{grid-template-columns:1fr;}
  .mp-pane{padding:12px 14px;}
  th,td{padding-right:10px;}
  table{font-size:15px;}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;}}
