@import "tailwindcss";
@plugin "daisyui" {
  themes: false;
}

@plugin "daisyui/theme" {
  name: "light";
  default: true;
  prefersdark: false;
  color-scheme: light;

  --color-base-100: #ffffff;
  --color-base-200: #ebeaf2;
  --color-base-300: #e3e2ec;
  --color-base-content: #1a1a24;

  --color-primary: #4c49c0;
  --color-primary-content: #ffffff;
  --color-secondary: #555562;
  --color-secondary-content: #ffffff;
  --color-accent: #eeedfa;
  --color-accent-content: #4c49c0;
  --color-neutral: #1a1a24;
  --color-neutral-content: #ffffff;

  --color-info: #4c49c0;
  --color-info-content: #ffffff;
  --color-success: #2f7658;
  --color-success-content: #ffffff;
  --color-warning: #a26200;
  --color-warning-content: #ffffff;
  --color-error: #b53737;
  --color-error-content: #ffffff;

  --radius-selector: 0.25rem;
  --radius-field: 0.25rem;
  --radius-box: 0;
  --size-selector: 0.25rem;
  --size-field: 0.25rem;
  --border: 1px;
  --depth: 0;
  --noise: 0;
}

@plugin "daisyui/theme" {
  name: "dark";
  default: false;
  prefersdark: true;
  color-scheme: dark;

  --color-base-100: #242331;
  --color-base-200: #171620;
  --color-base-300: #38364a;
  --color-base-content: #f4f3fa;

  --color-primary: #8a88e8;
  --color-primary-content: #171620;
  --color-secondary: #c9c8d8;
  --color-secondary-content: #171620;
  --color-accent: #34324d;
  --color-accent-content: #f4f3fa;
  --color-neutral: #f4f3fa;
  --color-neutral-content: #171620;

  --color-info: #8a88e8;
  --color-info-content: #171620;
  --color-success: #75c7a1;
  --color-success-content: #171620;
  --color-warning: #e0b36d;
  --color-warning-content: #171620;
  --color-error: #ef8a8a;
  --color-error-content: #171620;

  --radius-selector: 0.25rem;
  --radius-field: 0.25rem;
  --radius-box: 0;
  --size-selector: 0.25rem;
  --size-field: 0.25rem;
  --border: 1px;
  --depth: 0;
  --noise: 0;
}

@theme {
  --font-sans: "InterVariable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", monospace;
}

@font-face {
  font-family: "InterVariable";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/InterVariable-884c49a1.woff2") format("woff2");
}

@layer base {
  :root,
  [data-theme="light"] {
    --paper-muted: #555562;
    --paper-dim: #8f8f9c;
    --paper-rule: #e3e2ec;
    --paper-rule-strong: #c9c8d8;
    --paper-primary-soft: #eeedfa;
    --paper-line: #f4f3fa;
    --paper-shadow: 0 40px 80px -40px rgb(26 26 36 / 0.35);
  }

  [data-theme="dark"] {
    --paper-muted: #c9c8d8;
    --paper-dim: #8f8f9c;
    --paper-rule: #38364a;
    --paper-rule-strong: #55536b;
    --paper-primary-soft: #34324d;
    --paper-line: #2b2a3a;
    --paper-shadow: 0 40px 80px -40px rgb(0 0 0 / 0.65);
  }

  html {
    font-family: var(--font-sans);
    scroll-behavior: smooth;
  }

  body {
    background: var(--color-base-200);
    color: var(--color-base-content);
    -webkit-font-smoothing: antialiased;
  }
}

@layer components {
  .mono-label {
    color: var(--paper-dim);
    font-family: var(--font-mono);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.5;
    text-transform: uppercase;
  }

  .paper-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid var(--paper-rule-strong);
    background: color-mix(in srgb, var(--color-base-200) 88%, transparent);
    backdrop-filter: blur(10px);
  }

  .paper-nav-inner {
    align-items: center;
    display: flex;
    gap: 1rem;
    min-height: 58px;
    margin: 0 auto;
    max-width: 1100px;
    padding: 0 1rem;
  }

  .paper-logo {
    align-items: center;
    color: var(--color-base-content);
    display: inline-flex;
    flex: none;
    font-size: 0.95rem;
    font-weight: 700;
    gap: 0.65rem;
  }

  .paper-logo-mark {
    border: 2px solid var(--color-base-content);
    border-radius: 0.25rem;
    flex: none;
    height: 1.25rem;
    position: relative;
    width: 1.25rem;
  }

  .paper-logo-mark::before,
  .paper-logo-mark::after {
    background: var(--color-base-content);
    bottom: 0.12rem;
    content: "";
    position: absolute;
    top: 0.12rem;
    width: 0.16rem;
  }

  .paper-logo-mark::before {
    left: 0.25rem;
  }

  .paper-logo-mark::after {
    left: 0.58rem;
  }

  .paper-nav-links {
    color: var(--paper-muted);
    display: none;
    font-family: var(--font-mono);
    font-size: 0.8rem;
    gap: 1.35rem;
  }

  .paper-nav-links a:hover {
    color: var(--color-primary);
  }

  .paper-nav-actions {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    margin-left: auto;
  }

  .btn-paper {
    border: 2px solid var(--color-base-content);
    border-radius: var(--radius-field);
    box-shadow: 3px 3px 0 var(--color-base-content);
    font-weight: 700;
    transition: box-shadow 120ms ease, transform 120ms ease;
  }

  .btn-paper.btn-sm {
    box-shadow: 2px 2px 0 var(--color-base-content);
  }

  .btn-paper:hover:not(:disabled),
  .btn-paper:focus-visible:not(:disabled) {
    box-shadow: 2px 2px 0 var(--color-base-content);
    transform: translate(1px, 1px);
  }

  .btn-paper:active:not(:disabled) {
    box-shadow: 0 0 0 var(--color-base-content);
    transform: translate(3px, 3px);
  }

  .btn-paper:disabled {
    box-shadow: 2px 2px 0 var(--paper-rule-strong);
    opacity: 0.55;
  }

  .paper-icon-btn {
    border: 1px solid var(--color-base-content);
    border-radius: var(--radius-field);
    min-height: 2.25rem;
  }

  .paper-doc {
    background: var(--color-base-100);
    border: 1px solid var(--paper-rule-strong);
    box-shadow: var(--paper-shadow);
    margin: 2rem auto 4rem;
    max-width: 1100px;
  }

  .paper-pad {
    padding: 0 1.25rem;
  }

  .paper-head {
    border-bottom: 1px solid var(--color-base-content);
    padding: 2rem 1.25rem 3rem;
    position: relative;
  }

  .paper-meta {
    border: 1px solid var(--color-base-content);
    display: grid;
    margin-bottom: 2.75rem;
  }

  .paper-meta-item {
    border-bottom: 1px solid var(--color-base-content);
    padding: 0.8rem 1rem;
  }

  .paper-meta-item:last-child {
    border-bottom: 0;
  }

  .paper-meta-value {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.5;
  }

  .paper-ok {
    color: var(--color-primary);
  }

  .paper-hero-title {
    font-size: clamp(2.6rem, 8vw, 4.15rem);
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.04;
    max-width: 800px;
  }

  .paper-mark {
    background: var(--paper-primary-soft);
    color: var(--color-primary);
    padding: 0 0.35rem;
  }

  .paper-hero-sub {
    color: var(--paper-muted);
    font-size: 1.1rem;
    line-height: 1.75;
    margin-top: 1.5rem;
    max-width: 620px;
  }

  .paper-stamp {
    border: 3px double var(--color-primary);
    border-radius: 0.25rem;
    color: var(--color-primary);
    display: none;
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.5;
    padding: 0.75rem 1rem;
    position: absolute;
    right: 5.5rem;
    text-align: center;
    text-transform: uppercase;
    top: 8rem;
    transform: rotate(7deg);
  }

  .paper-stamp small {
    display: block;
    font-size: 0.6rem;
    font-weight: 500;
  }

  .paper-ctas,
  .paper-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
  }

  .paper-ctas {
    margin-top: 2rem;
  }

  .paper-checks {
    gap: 1.25rem;
    margin-top: 2.25rem;
  }

  .paper-check {
    align-items: center;
    color: var(--paper-muted);
    display: inline-flex;
    font-family: var(--font-mono);
    font-size: 0.78rem;
    gap: 0.55rem;
  }

  .paper-check i,
  .paper-box-check {
    align-items: center;
    border: 1.5px solid var(--color-base-content);
    color: var(--color-primary);
    display: inline-flex;
    flex: none;
    font-style: normal;
    font-weight: 800;
    justify-content: center;
  }

  .paper-check i {
    height: 0.95rem;
    width: 0.95rem;
  }

  .paper-section {
    border-bottom: 1px solid var(--paper-rule);
    padding: 3.5rem 0;
  }

  .paper-section:last-child {
    border-bottom: 0;
  }

  .paper-section-tag {
    align-items: baseline;
    display: flex;
    gap: 1rem;
    margin-bottom: 0.85rem;
  }

  .paper-section-num {
    color: var(--color-primary);
    font-family: var(--font-mono);
    font-size: 0.9rem;
    font-weight: 700;
  }

  .paper-section-title {
    font-size: clamp(1.9rem, 5vw, 2.25rem);
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.14;
    max-width: 680px;
  }

  .paper-section-sub {
    color: var(--paper-muted);
    font-size: 1rem;
    line-height: 1.75;
    margin-top: 0.75rem;
    max-width: 620px;
  }

  .paper-findings,
  .paper-table,
  .paper-panel,
  .paper-invoice,
  .paper-report {
    border: 1px solid var(--color-base-content);
  }

  .paper-findings {
    margin-top: 2.4rem;
  }

  .paper-findings-head {
    background: var(--color-base-content);
    color: var(--color-base-100);
    display: none;
    font-family: var(--font-mono);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
  }

  .paper-findings-head span {
    padding: 0.65rem 1rem;
  }

  .paper-finding {
    border-top: 1px solid var(--paper-rule);
    display: grid;
    gap: 0;
    grid-template-columns: 5rem 1fr;
  }

  .paper-finding:first-of-type {
    border-top: 0;
  }

  .paper-finding > * {
    padding: 1rem;
  }

  .paper-finding code {
    border-right: 1px solid var(--paper-rule);
    color: var(--color-primary);
    font-family: var(--font-mono);
    font-size: 0.78rem;
    font-weight: 700;
  }

  .paper-finding h3 {
    font-size: 1rem;
    font-weight: 700;
  }

  .paper-finding p {
    color: var(--paper-muted);
    font-size: 0.92rem;
    grid-column: 2;
    line-height: 1.65;
    padding-top: 0;
  }

  .paper-findings-foot {
    background: var(--paper-primary-soft);
    border-top: 1px solid var(--color-base-content);
    color: var(--color-primary);
    font-family: var(--font-mono);
    font-size: 0.8rem;
    padding: 0.9rem 1rem;
  }

  .paper-procedure,
  .paper-register,
  .paper-faq {
    margin-top: 2.5rem;
  }

  .paper-proc-row,
  .paper-register-row {
    border-top: 1px solid var(--paper-rule);
    display: grid;
    gap: 0.75rem;
    padding: 1.35rem 0;
  }

  .paper-proc-row:first-child,
  .paper-register-row:first-child,
  .paper-faq details:first-child {
    border-top: 2px solid var(--color-base-content);
  }

  .paper-proc-num,
  .paper-register-row code {
    color: var(--color-primary);
    font-family: var(--font-mono);
    font-size: 0.85rem;
    font-weight: 700;
  }

  .paper-proc-row h3,
  .paper-register-row h3 {
    font-size: 1.08rem;
    font-weight: 700;
  }

  .paper-proc-row p,
  .paper-register-row p {
    color: var(--paper-muted);
    line-height: 1.65;
  }

  .paper-proc-check {
    color: var(--paper-dim);
    font-family: var(--font-mono);
    font-size: 0.72rem;
    text-transform: uppercase;
  }

  .paper-proc-check b {
    color: var(--color-primary);
  }

  .paper-checklist {
    display: grid;
    gap: 1.25rem;
    margin-top: 2.5rem;
  }

  .paper-card {
    background: var(--color-base-100);
    border: 1px solid var(--color-base-content);
    padding: 1.5rem;
    position: relative;
    transition: box-shadow 150ms ease, transform 150ms ease;
  }

  .paper-card:hover {
    box-shadow: 5px 5px 0 var(--paper-primary-soft), 5px 5px 0 1px var(--color-primary);
    transform: translate(-1px, -1px);
  }

  .paper-box-check {
    font-size: 0.9rem;
    height: 1.25rem;
    position: absolute;
    right: 1.4rem;
    top: 1.4rem;
    width: 1.25rem;
  }

  .paper-card h3 {
    font-size: 1.15rem;
    font-weight: 700;
    margin-top: 0.55rem;
  }

  .paper-card p,
  .paper-panel p,
  .paper-report p {
    color: var(--paper-muted);
    line-height: 1.65;
  }

  .paper-also {
    color: var(--paper-dim);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    line-height: 2;
    margin-top: 1.6rem;
  }

  .paper-also b {
    color: var(--paper-muted);
  }

  .paper-also i {
    color: var(--paper-rule-strong);
    font-style: normal;
    padding: 0 0.45rem;
  }

  .paper-two-col {
    display: grid;
    gap: 2rem;
    margin-top: 2.5rem;
  }

  .paper-lined {
    background: repeating-linear-gradient(to bottom, var(--color-base-100), var(--color-base-100) 31px, var(--paper-line) 31px, var(--paper-line) 32px);
    border: 1px solid var(--paper-rule-strong);
    color: var(--paper-muted);
    line-height: 32px;
    padding: 1.75rem;
    position: relative;
  }

  .paper-lined h4 {
    color: var(--color-base-content);
    font-family: var(--font-mono);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 32px;
    text-transform: uppercase;
  }

  .paper-draft {
    background: var(--paper-primary-soft);
    color: var(--color-base-content);
    padding: 0 0.25rem;
  }

  .paper-points {
    display: flex;
    flex-direction: column;
  }

  .paper-point {
    align-items: baseline;
    border-top: 1px solid var(--paper-rule);
    display: flex;
    gap: 0.9rem;
    padding: 1rem 0;
  }

  .paper-point:first-child {
    border-top: 2px solid var(--color-base-content);
  }

  .paper-point i {
    color: var(--color-primary);
    flex: 0 0 4.2rem;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 700;
    text-transform: uppercase;
  }

  .paper-point p {
    color: var(--paper-muted);
    font-size: 0.92rem;
    line-height: 1.65;
  }

  .paper-house-rule {
    background: var(--paper-primary-soft);
    border: 1px dashed var(--color-primary);
    color: var(--color-primary);
    font-family: var(--font-mono);
    font-size: 0.78rem;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
  }

  .paper-invoice-band {
    display: grid;
    gap: 2rem;
    margin-top: 2.5rem;
  }

  .paper-price {
    font-family: var(--font-mono);
    font-size: clamp(3.5rem, 10vw, 6.25rem);
    font-weight: 800;
    line-height: 1;
  }

  .paper-price small {
    color: var(--paper-dim);
    font-family: var(--font-sans);
    font-size: 1.1rem;
    font-weight: 500;
  }

  .paper-invoice-head,
  .paper-invoice-row,
  .paper-invoice-total {
    align-items: center;
    display: flex;
    gap: 1.25rem;
    justify-content: space-between;
  }

  .paper-invoice-head {
    border-bottom: 1px solid var(--color-base-content);
    font-family: var(--font-mono);
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.85rem 1.25rem;
    text-transform: uppercase;
  }

  .paper-invoice-row {
    border-bottom: 1px solid var(--paper-rule);
    font-size: 0.92rem;
    padding: 0.8rem 1.25rem;
  }

  .paper-invoice-row:nth-last-child(2) {
    border-bottom: 1px solid var(--color-base-content);
  }

  .paper-invoice-row b {
    color: var(--color-primary);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .paper-invoice-total {
    background: var(--paper-primary-soft);
    color: var(--color-primary);
    font-family: var(--font-mono);
    font-weight: 700;
    padding: 1rem 1.25rem;
  }

  .paper-register-row {
    grid-template-columns: 3.5rem 1fr;
  }

  .paper-register-row p {
    grid-column: 2;
  }

  .paper-faq details {
    border-top: 1px solid var(--paper-rule);
  }

  .paper-faq summary {
    cursor: pointer;
    display: flex;
    font-size: 1rem;
    font-weight: 700;
    gap: 1rem;
    list-style: none;
    padding: 1.1rem 0.1rem;
  }

  .paper-faq summary::-webkit-details-marker {
    display: none;
  }

  .paper-faq summary::before {
    color: var(--color-primary);
    content: "Q.";
    font-family: var(--font-mono);
    font-size: 0.8rem;
  }

  .paper-faq-a {
    color: var(--paper-muted);
    line-height: 1.65;
    max-width: 620px;
    padding: 0 0.1rem 1.35rem 2.25rem;
    position: relative;
  }

  .paper-faq-a::before {
    color: var(--paper-dim);
    content: "A.";
    font-family: var(--font-mono);
    font-size: 0.8rem;
    left: 0.1rem;
    position: absolute;
  }

  .paper-cta {
    background: var(--color-base-content);
    color: var(--color-base-100);
    padding: 4rem 1.25rem;
  }

  .paper-cta .paper-section-title,
  .paper-cta .paper-section-num {
    color: var(--color-base-100);
  }

  .paper-cta .mono-label,
  .paper-cta p {
    color: color-mix(in srgb, var(--color-base-100) 68%, transparent);
  }

  .paper-cta .paper-mark {
    background: var(--color-primary);
    color: var(--color-primary-content);
  }

  .paper-cta .btn-paper {
    border-color: var(--color-primary);
    box-shadow: 3px 3px 0 var(--color-primary);
  }

  .paper-progress {
    border-radius: 0;
    height: 0.85rem;
  }

  .paper-answer {
    align-items: center;
    border: 1px solid var(--paper-rule-strong);
    cursor: pointer;
    display: flex;
    gap: 0.75rem;
    padding: 0.8rem;
  }

  .paper-answer:hover,
  .paper-answer:has(input:checked) {
    border-color: var(--color-primary);
    box-shadow: 3px 3px 0 var(--paper-primary-soft);
  }

  .paper-report {
    padding: 1.4rem;
  }

  .paper-input {
    border: 1px solid var(--color-base-content);
    border-radius: var(--radius-field);
  }

  .paper-table {
    overflow-x: auto;
  }

  .paper-table table {
    width: 100%;
  }

  .paper-table :where(th) {
    background: var(--color-base-content);
    color: var(--color-base-100);
    font-family: var(--font-mono);
    font-size: 0.72rem;
    text-transform: uppercase;
  }

  .paper-table :where(td, th) {
    border-color: var(--paper-rule);
  }

  .paper-footer {
    color: var(--paper-dim);
    display: flex;
    flex-direction: column;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    gap: 1rem;
    margin: 0 auto;
    max-width: 1100px;
    padding: 0 1rem 4rem;
    text-transform: uppercase;
  }

  .paper-footer div {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
  }

  .paper-footer a:hover {
    color: var(--color-base-content);
  }

  @media (min-width: 640px) {
    .paper-meta {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .paper-meta-item:nth-child(odd) {
      border-right: 1px solid var(--color-base-content);
    }

    .paper-meta-item:nth-last-child(-n + 2) {
      border-bottom: 0;
    }

    .paper-checklist {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (min-width: 768px) {
    .paper-nav-inner,
    .paper-footer {
      padding-left: 2rem;
      padding-right: 2rem;
    }

    .paper-nav-links {
      display: flex;
    }

    .paper-pad {
      padding: 0 3rem;
    }

    .paper-head {
      padding: 3rem 3rem 4.5rem;
    }

    .paper-findings-head,
    .paper-finding {
      display: grid;
      grid-template-columns: 6.8rem minmax(14rem, 20rem) 1fr;
    }

    .paper-finding h3 {
      border-right: 1px solid var(--paper-rule);
    }

    .paper-finding p {
      grid-column: auto;
      padding-top: 1.35rem;
    }

    .paper-proc-row {
      align-items: baseline;
      grid-template-columns: 4rem minmax(12rem, 18rem) 1fr 7rem;
      gap: 1.5rem;
    }

    .paper-proc-check {
      text-align: right;
    }

    .paper-two-col {
      grid-template-columns: 1fr 23rem;
    }

    .paper-invoice-band {
      grid-template-columns: 1fr minmax(22rem, 27.5rem);
    }

    .paper-register-row {
      align-items: baseline;
      grid-template-columns: 3.5rem minmax(12rem, 16rem) 1fr;
      gap: 1.5rem;
    }

    .paper-register-row p {
      grid-column: auto;
    }

    .paper-cta {
      padding: 5rem 5.5rem;
    }

    .paper-footer {
      align-items: center;
      flex-direction: row;
      justify-content: space-between;
    }
  }

  @media (min-width: 1024px) {
    .paper-doc {
      margin-top: 3.5rem;
    }

    .paper-pad {
      padding: 0 5.5rem;
    }

    .paper-head {
      padding-left: 5.5rem;
      padding-right: 5.5rem;
    }

    .paper-meta {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .paper-meta-item,
    .paper-meta-item:nth-child(odd) {
      border-bottom: 0;
      border-right: 1px solid var(--color-base-content);
    }

    .paper-meta-item:last-child {
      border-right: 0;
    }

    .paper-stamp {
      display: block;
    }
  }
}
