:root{
  --pink:#fcdbde;
  --olive:#a1a171;
  --white:#ffffff;
  --black:#000000;
  --head:"Life Savers","Iowan Old Style",Georgia,serif;
  --body:"Inter Tight",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{
  margin:0;background:var(--white);color:var(--black);
  font:16px/1.5 var(--body);
  -webkit-font-smoothing:antialiased;
}

/* Buttons: green is the main action, pink is the secondary one */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 20px;border:2px solid var(--olive);border-radius:999px;
  background:var(--olive);color:var(--black);font:600 14px/1 var(--body);
  cursor:pointer;transition:transform .15s;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:none}
.btn:focus-visible{outline:3px solid var(--black);outline-offset:2px}
.btn svg{flex:none}
.btn.pink{background:var(--pink)}
.btn.big{padding:17px 32px;font-size:17px;gap:10px}
.btn.small{padding:10px 16px;font-size:13px;margin-top:10px}

/* Start screen */
.start{min-height:100%;display:flex;align-items:center;justify-content:center;padding:32px 20px}
.start-card{width:100%;max-width:520px;text-align:center}
.mark{display:block;margin:0 auto 14px}
h1{font-family:var(--head);font-weight:800;font-size:56px;line-height:1.05;letter-spacing:-.01em;margin:0 0 14px}
.lede{margin:0 auto 34px;max-width:400px;font-size:17px}
.hint{margin:16px 0 0;font-size:14px}
.status{min-height:24px;margin:12px 0 0;font-size:15px}
.status.err{font-weight:600}

/* Shown over the whole page while a file is dragged in */
.dropzone{
  position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:none;
  background:var(--pink);pointer-events:none;
}
body.dragging .dropzone{display:block}
.dropzone div{
  position:absolute;top:20px;right:20px;bottom:20px;left:20px;
  display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;
  border:3px dashed var(--olive);border-radius:36px;
  font-family:var(--head);font-weight:800;font-size:34px;
}

/* Reader: the book fills the window, the two buttons float on top */
.reader{position:relative;height:100vh;height:100dvh}
.viewer{position:absolute;top:0;right:0;bottom:0;left:0}
.viewer>.fb-root{position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto}
.float{position:absolute;top:14px;z-index:40;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.float.left{left:14px}
.float.right{right:14px}

/* Embed dialog */
.dlg{
  width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;
  padding:0;border:2px solid var(--olive);border-radius:28px;background:var(--white);color:var(--black);
  box-shadow:0 24px 80px rgba(0,0,0,.25);
}
.dlg::backdrop{background:rgba(252,219,222,.7)}
.dlg-head{display:flex;align-items:center;justify-content:space-between;margin:0;padding:22px 20px 0 26px}
.dlg-head h2{margin:0;font-family:var(--head);font-weight:800;font-size:26px}
.x{border:0;background:transparent;color:var(--black);font-size:30px;line-height:1;padding:2px 12px;border-radius:999px;cursor:pointer}
.x:hover{background:var(--pink)}
.dlg-body{padding:10px 26px 26px}
.steps{margin:0;padding-left:20px}
.steps li{margin:16px 0}
.steps li::marker{font-family:var(--head);font-weight:700}
textarea,input[type=url]{
  display:block;width:100%;margin-top:10px;padding:11px 14px;
  border:2px solid var(--olive);border-radius:16px;background:var(--white);color:var(--black);
  font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;
}
textarea{resize:none;background:rgba(252,219,222,.35)}
input[type=url]{font-family:var(--body);font-size:14px}
input[type=url]:focus,textarea:focus{outline:none;background:var(--pink)}
details{margin-top:22px;padding-top:16px;border-top:2px solid var(--pink)}
summary{cursor:pointer;font-weight:600;font-size:15px}
details p{margin:8px 0 4px;font-size:14px}
code{padding:1px 6px;border-radius:6px;background:var(--pink);font-size:13px}

@media(max-width:520px){
  h1{font-size:44px}
  .dropzone div{font-size:26px}
}
