/* ==========================================================================
   Proofby – timestamp registry
   Palette: register ink on paper, sealed with teal.
   ========================================================================== */

:root {
	--navy-950: #04061c;
	--navy-900: #07132b;
	--navy-800: #0a1042;
	--ink:      #111633;
	--ink-soft: #4a5169;
	--teal:     #0097b2;
	--teal-dk:  #00758a;
	--teal-sft: #e3f4f6;
	--paper:    #f4f3ee;
	--raised:   #fffdf9;
	--rule:     #ddd7c7;
	--rule-dk:  #c6bda5;
	--ok:       #0f766e;
	--ok-bg:    #ecfdf5;
	--warn:     #b45309;
	--warn-bg:  #fffbeb;
	--bad:      #b91c1c;
	--bad-bg:   #fef2f2;

	--display: Georgia, "Iowan Old Style", "Times New Roman", serif;
	--body:    ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	--mono:    ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;

	--shadow:  0 24px 60px -34px rgba(4, 6, 28, .55);
	--radius:  .5rem;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	min-width: 320px;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--body);
	line-height: 1.65;
}

h1, h2, h3 { font-family: var(--display); font-weight: 400; line-height: 1.2; color: var(--navy-900); margin: 0; }
p { margin: 0 0 1rem; }
a { color: var(--teal-dk); text-underline-offset: .18em; }
a:hover { color: var(--teal); }
:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; border-radius: .2rem; }

.wrap { width: min(100% - 2rem, 68rem); margin-inline: auto; }
.muted { color: var(--ink-soft); }
.strong { font-weight: 700; color: var(--navy-800); }

.skip {
	position: absolute; left: -9999px;
	background: var(--navy-900); color: #fff; padding: .75rem 1rem; z-index: 100;
}
.skip:focus { left: 1rem; top: 1rem; }

/* ------------------------------------------------------------------ header */

.site-head { background: var(--navy-900); color: var(--paper); border-bottom: 1px solid rgba(255,255,255,.08); }
.site-head__inner { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding: .85rem 0; }

.brand { display: inline-flex; align-items: center; gap: .5rem; color: var(--paper); text-decoration: none; margin-right: auto; }
.brand__mark { color: var(--teal); font-size: 1.15rem; }
.brand__name { font-family: var(--display); font-size: 1.3rem; letter-spacing: -.01em; }

.mainnav { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.mainnav a {
	color: rgba(244,243,238,.82); text-decoration: none;
	font-size: .9rem; padding: .45rem .7rem; border-radius: .35rem;
}
.mainnav a:hover { color: #fff; background: rgba(255,255,255,.07); }
.mainnav a[aria-current="page"] { color: #fff; box-shadow: inset 0 -2px 0 var(--teal); }
.mainnav .langswitch {
	font-family: var(--mono); font-size: .75rem; letter-spacing: .08em;
	border: 1px solid rgba(244,243,238,.3); border-radius: 999px; padding: .3rem .6rem; margin-left: .35rem;
}

.navtoggle, .navtoggle__btn { display: none; }

/* -------------------------------------------------------------------- hero */

.hero {
	position: relative; isolation: isolate; color: var(--paper);
	padding: 3.5rem 0 4.5rem;
	background-image:
		linear-gradient(160deg, rgba(4,6,28,.95), rgba(10,16,66,.88) 55%, rgba(15,24,86,.8)),
		url("/blockchain_.jpg");
	background-size: cover; background-position: center;
}
.hero::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image:
		repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 1px, transparent 1px 14px),
		repeating-linear-gradient(65deg, rgba(255,255,255,.03) 0 1px, transparent 1px 14px);
}
.hero h1 { color: var(--paper); font-size: clamp(2.2rem, 5.5vw, 3.6rem); letter-spacing: -.03em; max-width: 20ch; }
.hero__lead { max-width: 46rem; margin-top: 1rem; color: rgba(244,243,238,.85); font-size: clamp(1rem, 2vw, 1.15rem); }
.hero--home { padding-bottom: 6rem; }

.kicker {
	font-family: var(--mono); font-size: .75rem; text-transform: uppercase;
	letter-spacing: .14em; color: rgba(0,151,178,.95); margin: 0 0 .75rem;
}

.hero__cta { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }

/* ------------------------------------------------------------------ layout */

main { padding-bottom: 4.5rem; }
.section { padding-top: 3.5rem; }
.section > h2 { font-size: clamp(1.6rem, 3.5vw, 2.2rem); margin-bottom: .5rem; }
.section__lead { max-width: 46rem; color: var(--ink-soft); margin-bottom: 2rem; }

/* Cards lifted over the hero edge */
.panel {
	position: relative; margin-top: -2.75rem;
	background: var(--raised); border: 1px solid var(--rule);
	border-radius: var(--radius); box-shadow: var(--shadow);
	padding: clamp(1.25rem, 3vw, 2.5rem);
}

.cardgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; margin: 0 0 2rem; }
.card {
	background: var(--raised); border: 1px solid var(--rule);
	border-radius: .4rem; padding: 1.25rem; min-width: 0;
}
.card h3 { font-size: 1.15rem; margin-bottom: .5rem; }
.card p { margin: 0; color: var(--ink-soft); font-size: .95rem; }
.card p + p { margin-top: .75rem; }

/* ----------------------------------------------------------------- buttons */

.btn, .btn-2 {
	display: inline-flex; align-items: center; justify-content: center;
	padding: .8rem 1.35rem; border-radius: .375rem; border: 1px solid transparent;
	font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer;
	text-decoration: none; transition: background-color .15s, color .15s, border-color .15s;
}
.btn { background: var(--teal); color: #fff; }
.btn:hover { background: var(--teal-dk); color: #fff; }
.btn-2 { background: transparent; border-color: var(--teal); color: var(--teal-dk); }
.btn-2:hover { background: var(--teal-sft); color: var(--teal-dk); }
.hero .btn-2 { border-color: rgba(244,243,238,.5); color: var(--paper); }
.hero .btn-2:hover { background: rgba(255,255,255,.1); color: #fff; }

/* ------------------------------------------------------------------- forms */

.form { display: grid; gap: 1.35rem; max-width: 44rem; }
.field { display: grid; gap: .4rem; min-width: 0; }
.field > label { font-size: .9rem; font-weight: 600; color: var(--navy-800); }
.field .hint { font-size: .82rem; color: var(--ink-soft); margin: 0; }

input[type="text"], input[type="email"], input[type="search"], input[type="file"], textarea {
	width: 100%; padding: .7rem .8rem;
	border: 1px solid var(--rule-dk); border-radius: .375rem;
	background: #fff; color: var(--ink); font: inherit; font-size: .95rem;
}
input[type="text"].mono, input[type="search"].mono { font-family: var(--mono); font-size: .85rem; }
textarea { min-height: 10rem; resize: vertical; }
input:focus, textarea:focus { border-color: var(--teal); outline: 2px solid rgba(0,151,178,.25); outline-offset: 0; }

.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }

/* ------------------------------------------------------------------ notes */

.note { border: 1px solid; border-left-width: 4px; border-radius: .375rem; padding: .9rem 1.1rem; margin: 0 0 1.25rem; font-size: .93rem; }
.note p:last-child { margin-bottom: 0; }
.note--warn { border-color: #fcd34d; border-left-color: var(--warn); background: var(--warn-bg); color: #78350f; }
.note--ok   { border-color: #a7f3d0; border-left-color: var(--ok);   background: var(--ok-bg);   color: #065f46; }
.note--bad  { border-color: #fecaca; border-left-color: var(--bad);  background: var(--bad-bg);  color: #7f1d1d; }
.note--info { border-color: var(--rule-dk); border-left-color: var(--teal); background: var(--teal-sft); color: var(--navy-800); }
.note strong { font-weight: 700; }

/* -------------------------------------------------- the register: ledger --
   The signature element. A register is a ledger, so entries are set as ledger
   rows: monospace register number on the left, hashes as fixed-width data.     */

.ledger { border: 1px solid var(--rule); border-radius: var(--radius); background: var(--raised); overflow: hidden; }
.ledger__head, .ledger__row { display: grid; grid-template-columns: 9.5rem 1fr 1fr 10rem 3rem; gap: 1rem; align-items: center; padding: .85rem 1.1rem; }
.ledger__head {
	background: var(--navy-900); color: rgba(244,243,238,.75);
	font-family: var(--mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .1em;
}
.ledger__row { border-top: 1px solid var(--rule); text-decoration: none; color: inherit; }
.ledger__row:first-of-type { border-top: 0; }
.ledger__row:hover { background: var(--teal-sft); color: inherit; }
.ledger__row:nth-child(even of .ledger__row) { background: rgba(221,215,199,.14); }
.ledger__row:nth-child(even of .ledger__row):hover { background: var(--teal-sft); }

.regno {
	font-family: var(--mono); font-size: .82rem; font-weight: 700;
	color: var(--navy-900); letter-spacing: -.01em; white-space: nowrap;
}
.hashcell { font-family: var(--mono); font-size: .8rem; color: var(--ink-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.timecell { font-size: .82rem; color: var(--ink-soft); white-space: nowrap; }
.chaincell { text-align: right; color: var(--teal-dk); font-size: 1rem; }

.ledger__label { display: none; }

/* -------------------------------------------------------------- entry view */

.dl { display: grid; grid-template-columns: 14rem 1fr; gap: .1rem 1.5rem; margin: 0 0 1.5rem; }
.dl dt { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-soft); padding: .7rem 0; font-weight: 700; }
.dl dd { margin: 0; padding: .7rem 0; border-bottom: 1px solid var(--rule); min-width: 0; }
.dl dt { border-bottom: 1px solid var(--rule); }

.chip {
	display: block; font-family: var(--mono); font-size: .82rem;
	background: #fff; border: 1px solid var(--rule); border-radius: .375rem;
	padding: .55rem .7rem; overflow-wrap: anywhere;
}
.chip--seal {
	display: inline-block; font-size: 1rem; font-weight: 700; letter-spacing: .02em;
	background: var(--navy-900); color: var(--paper); border-color: var(--navy-900);
	padding: .5rem .9rem;
}

.copy {
	background: none; border: 0; padding: .2rem .35rem; margin-left: .25rem; cursor: pointer;
	font-family: var(--mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .06em;
	color: var(--teal-dk); border-radius: .25rem;
}
.copy:hover { background: var(--teal-sft); }

/* -------------------------------------------------------------------- misc */

.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; list-style: none; padding: 0; margin: 0; counter-reset: step; }
.steps li { position: relative; border: 1px solid var(--rule); border-radius: .4rem; background: var(--raised); padding: 1.25rem; }
.steps li::before {
	counter-increment: step; content: counter(step, decimal-leading-zero);
	display: block; font-family: var(--mono); font-size: .72rem; color: var(--teal-dk);
	letter-spacing: .1em; margin-bottom: .5rem;
}
.steps h3 { font-size: 1.05rem; margin-bottom: .35rem; }
.steps p { margin: 0; font-size: .92rem; color: var(--ink-soft); }

.stats { display: flex; flex-wrap: wrap; gap: 2.5rem; margin-top: 2rem; }
.stats div { min-width: 8rem; }
.stats dt { font-family: var(--mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(0,151,178,.95); }
.stats dd { margin: .2rem 0 0; font-family: var(--display); font-size: 1.6rem; color: var(--paper); }

.searchbar { display: flex; gap: .6rem; align-items: flex-end; flex-wrap: wrap; }
.searchbar .field { flex: 1 1 22rem; }

.legal { max-width: 52rem; }
.legal h1 { font-size: 1.8rem; margin: 2rem 0 1rem; }
.legal h2 { font-size: 1.45rem; margin: 2rem 0 .75rem; }
.legal h3 { font-size: 1.15rem; margin: 1.5rem 0 .5rem; }
.legal h4 { font-size: 1rem; margin: 1.25rem 0 .4rem; color: var(--navy-800); }
.legal p, .legal li { color: var(--ink-soft); }
.legal ul, .legal ol { padding-left: 1.25rem; }
.legal li { margin-bottom: .4rem; }
.legal .label { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-soft); font-weight: 700; margin-bottom: .2rem; }
.legal address { font-style: normal; color: var(--ink-soft); }
.legal .footnote { font-size: .85rem; border-top: 1px solid var(--rule); padding-top: 1rem; margin-top: 2rem; }
.legal .cardgrid p { color: var(--ink-soft); }

.prose { max-width: 46rem; }
.prose p { color: var(--ink-soft); }

/* ------------------------------------------------------------------ footer */

.site-foot { background: var(--navy-900); color: rgba(244,243,238,.72); padding: 3rem 0 1.5rem; margin-top: 4rem; }
.site-foot__inner { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2.5rem; }
.site-foot__brand p { font-size: .9rem; margin: .5rem 0 0; max-width: 24rem; }
.site-foot__brand .muted { color: rgba(244,243,238,.5); font-size: .82rem; }
.site-foot__col h2 { font-family: var(--body); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--teal); margin-bottom: .75rem; }
.site-foot__col { display: flex; flex-direction: column; gap: .45rem; }
.site-foot__col a { color: rgba(244,243,238,.78); text-decoration: none; font-size: .9rem; }
.site-foot__col a:hover { color: #fff; text-decoration: underline; }
.site-foot__legal { text-align: center; font-size: .8rem; color: rgba(244,243,238,.45); margin: 2.5rem 0 0; }

/* -------------------------------------------------------------- responsive */

@media (max-width: 900px) {
	.ledger__head { display: none; }
	.ledger__row { grid-template-columns: 1fr auto; gap: .35rem .75rem; padding: 1rem 1.1rem; }
	.ledger__row > * { grid-column: 1; }
	.regno { grid-row: 1; }
	.chaincell { grid-column: 2; grid-row: 1; text-align: right; }
	.ledger__label { display: inline; font-family: var(--mono); font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; color: var(--rule-dk); margin-right: .4rem; }
	.hashcell, .timecell { white-space: normal; overflow-wrap: anywhere; }

	.dl { grid-template-columns: 1fr; gap: 0; }
	.dl dt { border-bottom: 0; padding-bottom: 0; }
	.dl dd { padding-top: .3rem; }

	.site-foot__inner { grid-template-columns: 1fr 1fr; }
	.site-foot__brand { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
	.navtoggle__btn {
		display: inline-flex; align-items: center; gap: .45rem; cursor: pointer;
		font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--paper);
		border: 1px solid rgba(244,243,238,.3); border-radius: .35rem; padding: .4rem .7rem;
	}
	.navtoggle__btn span { width: 1rem; height: 2px; background: var(--teal); box-shadow: 0 4px 0 var(--teal), 0 -4px 0 var(--teal); }
	.mainnav { display: none; width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding-bottom: .5rem; }
	.navtoggle:checked ~ .mainnav { display: flex; }
	.mainnav a { padding: .7rem .5rem; border-top: 1px solid rgba(255,255,255,.08); border-radius: 0; }
	.mainnav .langswitch { margin: .6rem 0 0; align-self: flex-start; border-radius: 999px; }

	.panel { margin-top: -1.75rem; }
	.stats { gap: 1.5rem; }
	.site-foot__inner { grid-template-columns: 1fr; gap: 1.75rem; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

@media print {
	.site-head, .site-foot, .hero__cta, .copy { display: none; }
	body { background: #fff; }
	.hero { background: var(--navy-900); padding: 1.5rem 0; }
}

/* Visually hidden but available to screen readers. */
.sr-only {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
