/* Fonts */
@font-face{font-family:'Sorts Mill Goudy';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sorts-mill-goudy-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Sorts Mill Goudy';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/sorts-mill-goudy-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pinyon-script-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Literata';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/literata-latin-wght-normal.woff2) format('woff2')}
@font-face{font-family:'Literata';font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/literata-latin-wght-italic.woff2) format('woff2')}

/* Tokens */
:root{
--paper-50:#FFFCF5;--paper-100:#F8F2E6;--paper-200:#EFE4CE;--paper-300:#E3D3B4;--paper-400:#D2BD96;
--ink-900:#262A24;--ink-700:#3F443B;--ink-500:#62675C;--ink-400:#878B80;
--sage-900:#2C3A2E;--sage-700:#4A5E4B;--sage-500:#748A72;--sage-300:#B3C2AC;--sage-100:#E5ECE0;
/* Accents */
--rubric-600:#B4432B;--rubric-100:#F6DDD3;
--moss-600:#5E7A4A;--moss-100:#E3EBD9;
--gold-500:#C4953A;--ornament-strong:#A87B22;--gold-200:#EED9A8;
--rose-300:#E7B7A6;

/* Semantic */
--bg-page:var(--paper-100);
--bg-sunk:var(--paper-200);
--surface-card:var(--paper-50);
--surface-plate:var(--paper-200);
--text-body:var(--ink-900);
--text-muted:var(--ink-500);
--text-faint:var(--ink-400);
--text-on-primary:var(--paper-50);
--text-number:var(--ink-500);
--accent-primary:var(--sage-700);
--accent-primary-hover:var(--sage-900);
--accent-soft:var(--sage-100);
--ornament:var(--gold-500);
--line:var(--paper-300);
--line-strong:var(--paper-400);
--link:var(--sage-700);
--link-hover:var(--sage-900);
--focus-ring:var(--sage-700);
--press:inset 0 1px 0 rgba(255,252,245,.22);
--svg-feder:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 12'%3E%3Ccircle cx='2.6' cy='6' r='1.7'/%3E%3Cpath d='M2.6 5.2C10 5.3 18 5.5 26 5.6v.8C18 6.5 10 6.7 2.6 6.8z'/%3E%3Cpath d='M22 1c2.6 2.4 5.3 3.9 9.5 5-4.2 1.1-6.9 2.6-9.5 5 1.5-2 2.4-3.4 3-5-.6-1.6-1.5-3-3-5z'/%3E%3C/svg%3E");
/* Book cover texture */
--book-linen:rgba(44,58,46,.045);--book-stamp:rgba(196,149,58,.5);
--book-linen-featured:rgba(0,0,0,.09);--book-stamp-featured:rgba(238,217,168,.45);

/* Type */
--font-poem:'Sorts Mill Goudy','Goudy Old Style',Garamond,Georgia,serif;
--font-script:'Pinyon Script','Snell Roundhand',cursive;
--font-text:'Literata',Georgia,'Times New Roman',serif;
--fs-xs:13px;--fs-sm:15px;--fs-base:18px;--fs-md:21px;--fs-lg:26px;--fs-xl:34px;--fs-2xl:44px;--fs-3xl:58px;--fs-4xl:76px;
--lh-tight:1.15;--lh-poem:1.45;--lh-body:1.65;
--tracking-label:0.14em;
--type-brand:400 var(--fs-2xl)/1 var(--font-script);
--type-heading:400 var(--fs-xl)/var(--lh-tight) var(--font-poem);
--type-subheading:italic 400 var(--fs-md)/1.3 var(--font-poem);
--type-body:400 var(--fs-base)/var(--lh-body) var(--font-text);
--type-label:500 var(--fs-xs)/1.2 var(--font-text);
--type-script-label:400 var(--fs-lg)/1 var(--font-script);

/* Space, radii, shadows */
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;
--measure-text:62ch;--container:1120px;--column:820px;
--radius-sm:3px;--radius-md:6px;--radius-lg:14px;--radius-pill:999px;
--shadow-hang:0 1px 0 rgba(38,46,36,.06),0 10px 24px -12px rgba(38,46,36,.28);
--shadow-lift:0 2px 0 rgba(38,46,36,.06),0 18px 34px -14px rgba(38,46,36,.36);
--shadow-inset:inset 0 1px 3px rgba(38,46,36,.12);
--leaves:2px 2px 0 -1px var(--paper-50),2px 2px 0 0 var(--paper-300),4px 4px 0 -1px var(--paper-50),4px 4px 0 0 var(--paper-300);

--ease-soft:cubic-bezier(.3,.7,.3,1);
--ease-swing:cubic-bezier(.34,1.56,.64,1);
--dur-fast:140ms;--dur-base:260ms;--dur-slow:520ms;
--tilt:-0.6deg;

--tap-min:44px;
--gutter-phone:20px;
--safe-top:env(safe-area-inset-top,0px);
--safe-bottom:env(safe-area-inset-bottom,0px);
}

/* Base */
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg-page);color:var(--text-body);font:var(--type-body);font-optical-sizing:auto;-webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:underline;text-decoration-color:var(--sage-300);text-decoration-thickness:1px;text-underline-offset:.2em;transition:color var(--dur-fast) var(--ease-soft),text-decoration-color var(--dur-fast)}
a:hover{color:var(--link-hover);text-decoration-style:wavy;text-decoration-color:currentColor}
::selection{background:var(--gold-200);color:var(--ink-900)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:var(--radius-sm)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-poem);font-weight:400;margin:0}
p{text-wrap:pretty}
mark{background:none;color:inherit;text-decoration:underline solid var(--gold-500) 3px;text-underline-offset:.15em}

/* Layout */
.gn-main{flex:1;width:100%;max-width:var(--container);margin:0 auto;box-sizing:border-box;padding:clamp(24px,5vw,48px) clamp(20px,5vw,32px) clamp(56px,10vw,96px)}
.gn-title{font:var(--type-heading);font-size:clamp(34px,8vw,44px);margin:20px 0 clamp(24px,6vw,40px)}
.gn-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:20px 0 clamp(32px,7vw,48px)}
.gn-toolbar .gn-title{margin:0}
.gn-toolbar__search{flex:1 1 300px;max-width:420px}
.gn-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,42vw),1fr));gap:clamp(16px,3vw,28px)}
.gn-gnomes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:clamp(32px,6vw,40px)}
.gn-more{margin-top:clamp(40px,8vw,64px)}
.gn-empty{text-align:center;font-family:var(--font-poem);font-style:italic;font-size:var(--fs-md);color:var(--text-muted);margin:var(--space-7) 0}

/* Start page */
.gn-home{display:grid;gap:clamp(40px,8vw,64px);justify-items:center;text-align:center}
.gn-welcome{display:grid;gap:20px;max-width:640px;padding-top:24px}
.gn-welcome h1{font:var(--type-script-label);font-size:clamp(40px,10vw,58px);color:var(--accent-primary);line-height:1.1}
.gn-welcome p{margin:0;font-size:var(--fs-md);line-height:1.6}
.gn-welcome .gn-welcome__note{color:var(--text-muted);font-style:italic;font-family:var(--font-poem)}
.gn-still{display:grid;gap:var(--space-3)}
.gn-still h2{font:var(--type-script-label);font-size:var(--fs-2xl);color:var(--accent-primary)}
.gn-still p{margin:0;font-family:var(--font-poem);font-style:italic;color:var(--text-muted);font-size:var(--fs-md)}

/* Gnome detail */
.gn-detail{max-width:var(--column);margin:0 auto}
.gn-detail .gn-spread{margin:clamp(28px,7vw,48px) 0 clamp(28px,7vw,48px)}
.gn-detail>.gn-pages{margin-bottom:clamp(44px,10vw,72px)}
.gn-deutungen{display:grid;gap:clamp(20px,5vw,32px)}
.gn-deutungen>h2{display:flex;align-items:center;gap:14px;font:var(--type-heading)}

/* Legal text (Datenschutz) */
.gn-prose{max-width:var(--measure-text);margin:0 auto;font-size:var(--fs-sm);line-height:1.6;hyphens:auto}
.gn-prose h1{font:var(--type-script-label);font-size:var(--fs-2xl);color:var(--accent-primary);margin:20px 0 var(--space-6)}
.gn-prose p{margin:0 0 var(--space-4)}
.gn-prose b{display:block;margin-top:var(--space-5);font-family:var(--font-poem);font-weight:400;font-style:italic;font-size:var(--fs-md);color:var(--accent-primary)}

/* Components */

/* Buttons */
.gn-btn{min-height:var(--tap-min);box-sizing:border-box;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center;gap:.45em;font-family:var(--font-poem);font-size:var(--fs-md);line-height:1;padding:.8em 1.25em .66em;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform var(--dur-base) var(--ease-swing),background var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-base);white-space:nowrap}
.gn-btn:hover{text-decoration:none;transform:translateY(-1px)}
.gn-btn:active{transform:translateY(1px)}
.gn-btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.gn-btn--sm{font-size:var(--fs-sm);padding:.78em 1.05em .62em}
.gn-btn--primary{background:var(--sage-700);color:var(--paper-50);border-color:var(--sage-900);box-shadow:var(--press),0 2px 0 var(--sage-900),0 8px 16px -10px rgba(38,46,36,.55)}
.gn-btn--primary:hover{background:var(--accent-primary-hover);color:var(--paper-50)}
.gn-btn--primary:active{box-shadow:var(--press)}
.gn-btn--secondary,.gn-burger{background:var(--paper-50);color:var(--sage-700);border:1px solid var(--line-strong);box-shadow:inset 0 1px 0 #fff,0 2px 0 var(--paper-400)}
.gn-btn--secondary:hover{background:var(--sage-100);color:var(--sage-900);border-color:var(--sage-500)}
.gn-btn--secondary:active{box-shadow:var(--shadow-inset)}
.gn-btn--block{width:100%}
.gn-btn.gn-btn--text{background:none;border-color:transparent;box-shadow:none;padding-inline:.2em;color:var(--sage-700);text-decoration:underline 1px var(--sage-300);text-underline-offset:.32em}
.gn-btn.gn-btn--text:hover{transform:none;color:var(--sage-900);text-decoration:underline wavy currentColor;text-underline-offset:.32em}
.gn-btn.gn-btn--danger,.gn-btn.gn-btn--text.gn-btn--danger:hover{color:var(--rubric-600)}
.gn-btn.gn-btn--danger{text-decoration-color:var(--rose-300)}
.gn-btn.is-loading{opacity:.6;pointer-events:none;cursor:progress;animation:gn-pulse 1.2s ease-in-out infinite}
@keyframes gn-pulse{50%{opacity:.35}}
.gn-arrow{display:inline-block;flex:none;width:1.7em;height:.7em;background:currentColor;-webkit-mask:var(--svg-feder) center/contain no-repeat;mask:var(--svg-feder) center/contain no-repeat;transition:transform var(--dur-base) var(--ease-swing)}
.gn-arrow--back{transform:scaleX(-1)}
.gn-btn:hover .gn-arrow{transform:translateX(3px)}
.gn-btn:hover .gn-arrow--back{transform:scaleX(-1) translateX(3px)}

/* Badges */
.gn-badge{display:inline-flex;align-items:baseline;gap:.25em;font-family:var(--font-poem);line-height:1}
.gn-badge--number{font-style:italic;color:var(--text-number);font-size:var(--fs-md)}
.gn-badge--soft{font-style:italic;font-size:var(--fs-sm);color:var(--accent-primary);background:var(--accent-soft);padding:.3em .75em .35em;border-radius:var(--radius-pill)}
.gn-badge--plate{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-700);background:var(--surface-plate);padding:.45em .8em .4em;border-radius:var(--radius-sm);border:1px solid var(--line)}

/* Ornament */
.gn-orn{display:flex;align-items:center;justify-content:center;align-self:stretch;gap:var(--space-4);color:var(--ornament);font-family:var(--font-poem);line-height:1;user-select:none;width:100%}
.gn-orn::before,.gn-orn::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line-strong) 30%,var(--line-strong) 70%,transparent)}
.gn-orn--short{max-width:220px;margin-inline:auto}
.gn-orn__glyph{font-size:var(--fs-lg)}

/* Search field */
.gn-search{display:flex;align-items:center;gap:var(--space-3);background:var(--surface-card);border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:0 var(--space-3) 0 var(--space-5);height:52px;box-sizing:border-box;margin:0;box-shadow:var(--shadow-inset);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.gn-search:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 4px var(--accent-soft)}
.gn-search svg{width:20px;height:20px;flex:none;color:var(--text-muted)}
.gn-search input{flex:1;min-width:0;border:0;background:transparent;font-family:var(--font-poem);font-style:italic;font-size:var(--fs-md);color:var(--text-body);outline:none;padding:.14em 0 0;line-height:1.2;-webkit-appearance:none;appearance:none}
.gn-search input::placeholder{color:var(--text-faint)}
.gn-search input::-webkit-search-cancel-button{display:none}
.gn-search__clear{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-min);height:var(--tap-min);margin-right:calc(-1 * var(--space-2));color:var(--text-muted);text-decoration:none;font-size:var(--fs-lg);line-height:1;border-radius:var(--radius-pill)}
.gn-search__clear:hover{color:var(--accent-primary);background:var(--accent-soft);text-decoration:none}

/* Poem */
.gn-poem{font-family:var(--font-poem);color:var(--text-body);margin:0;white-space:pre-wrap;text-wrap:pretty;text-align:center}
.gn-poem--hero{font-size:clamp(30px,3.4vw,44px);line-height:1.22}
.gn-poem--sm{font-size:var(--fs-lg);line-height:var(--lh-poem)}
.gn-poem--hero::first-letter{font-family:var(--font-script);color:var(--accent-primary);font-size:1.7em;line-height:0;padding-right:.04em}

/* Folio */
.gn-folio{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-faint);display:flex;align-items:baseline;gap:.6em}
.gn-folio .gn-badge--number{font-size:var(--fs-sm);letter-spacing:0;text-transform:none}

/* Gnome card */
.gn-gnome{display:flex;flex-direction:column;height:100%;box-sizing:border-box;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-soft)}
.gn-gnome:hover{border-color:var(--line-strong)}
.gn-gnome__head{padding:var(--space-5) var(--space-6) 0}
.gn-gnome__body{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-5) var(--space-5) var(--space-6)}
.gn-gnome__foot{display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-4) var(--space-3) var(--space-6)}

/* Exhibition cover */
.gn-book{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:var(--space-5);text-align:center;padding:var(--space-7) var(--space-5) var(--space-6);border-radius:var(--radius-md) var(--radius-lg) var(--radius-lg) var(--radius-md);background-color:var(--surface-card);background-image:repeating-linear-gradient(0deg,var(--book-linen) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,var(--book-linen) 0 1px,transparent 1px 4px);border:1px solid var(--line-strong);box-shadow:var(--shadow-hang),inset 6px 0 0 var(--paper-200);transition:transform var(--dur-slow) var(--ease-swing),box-shadow var(--dur-base);min-height:280px;box-sizing:border-box}
.gn-book:hover{transform:translateY(-4px) rotate(var(--tilt));box-shadow:var(--shadow-lift),inset 6px 0 0 var(--paper-200)}
.gn-book::after{content:"";position:absolute;inset:12px 12px 12px 18px;border:1px solid var(--book-stamp);border-radius:3px 9px 9px 3px;pointer-events:none}
.gn-book>*{position:relative;z-index:1}
.gn-book__top{display:grid;gap:10px;justify-items:center}
.gn-book__middle{display:grid;gap:16px;width:100%}
.gn-book__kicker{font:var(--type-script-label);color:var(--accent-primary)}
.gn-book__title{font-family:var(--font-poem);font-size:var(--fs-2xl);line-height:1;overflow-wrap:anywhere}
.gn-book--featured{background-image:repeating-linear-gradient(0deg,var(--book-linen-featured) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,var(--book-linen-featured) 0 1px,transparent 1px 4px);background-color:var(--sage-700);border-color:var(--sage-900);color:var(--paper-50);box-shadow:var(--shadow-hang),inset 6px 0 0 var(--sage-900)}
.gn-book--featured:hover{box-shadow:var(--shadow-lift),inset 6px 0 0 var(--sage-900)}
.gn-book--featured::after{border-color:var(--book-stamp-featured)}
.gn-book--featured::before{content:"";position:absolute;z-index:2;top:-5px;right:30px;width:18px;height:68px;background:var(--rubric-600);clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);box-shadow:0 2px 3px rgba(38,46,36,.25)}
.gn-book--featured .gn-book__kicker{color:var(--gold-200)}
.gn-book--featured .gn-badge--number{color:var(--sage-100)}
.gn-book--featured .gn-orn{color:var(--gold-200)}
.gn-book--lg{width:100%;max-width:400px;min-height:500px;padding:var(--space-8) var(--space-6) var(--space-7)}
.gn-book--lg .gn-book__title{font-size:clamp(58px,15vw,76px)}
.gn-book--lg .gn-book__kicker{font-size:var(--fs-xl)}

/* Gnome page */
.gn-spread{position:relative;display:grid}
.gn-spread__page{position:relative;display:grid;align-content:space-between;justify-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-6) var(--space-5);min-height:440px;box-sizing:border-box;text-align:center;background:linear-gradient(90deg,rgba(38,46,36,.1),rgba(38,46,36,.03) 22px,rgba(38,46,36,0) 44px),var(--surface-card);border-radius:2px var(--radius-md) var(--radius-md) 2px;box-shadow:var(--leaves),var(--shadow-hang)}

/* Deutung */
.gn-deutung{position:relative;padding:var(--space-6) var(--space-6) var(--space-6) var(--space-7);background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg)}
.gn-deutung__head{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4)}
.gn-deutung__label{font:var(--type-script-label);font-size:var(--fs-xl);color:var(--accent-primary)}
.gn-deutung__text{font:var(--type-body);max-width:var(--measure-text);white-space:pre-line;overflow-wrap:break-word}
.gn-deutung__head .gn-badge--number{margin-left:auto}
.gn-deutung__foot{display:flex;justify-content:flex-end;border-top:1px solid var(--line);margin-top:var(--space-4);padding-top:var(--space-2)}

/* Header */
.gn-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;padding:max(var(--space-4),var(--safe-top)) var(--space-6) var(--space-4);border-bottom:1px solid var(--line)}
.gn-brand{display:inline-flex;align-items:baseline;text-decoration:none;color:var(--accent-primary);gap:1px}
.gn-brand:hover{text-decoration:none;color:var(--accent-primary-hover)}
.gn-brand__word{font:var(--type-brand);font-size:46px}
.gn-brand__tld{font-family:var(--font-poem);font-style:italic;font-size:var(--fs-md);color:var(--text-muted)}
.gn-nav{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}
.gn-nav a{font-family:var(--font-poem);font-size:var(--fs-md);color:var(--ink-700);text-decoration:none;padding:.2em 0}
.gn-nav a:hover{color:var(--accent-primary);text-decoration:underline wavy var(--sage-300);text-underline-offset:.3em}
.gn-nav a[aria-current="page"]{color:var(--accent-primary);text-decoration:underline 2px var(--ornament-strong);text-underline-offset:.35em}
.gn-nav .gn-nav__ext{font-style:italic;color:var(--text-muted)}

/* Breadcrumbs */
.gn-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);list-style:none;margin:0;padding:0;font-family:var(--font-poem);font-size:var(--fs-sm)}
.gn-crumbs li{display:flex;align-items:center;gap:var(--space-2)}
.gn-crumbs li+li::before{content:"";width:5px;height:5px;background:var(--ornament);transform:rotate(45deg);margin-inline:3px}
.gn-crumbs a{color:var(--text-muted);text-decoration:none}
.gn-crumbs a:hover{color:var(--accent-primary);text-decoration:underline wavy}
.gn-crumbs [aria-current]{color:var(--text-body);font-style:italic}

/* Pagination */
.gn-pages{display:flex;align-items:center;justify-content:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap}
.gn-pages__label{font-family:var(--font-poem);font-style:italic;color:var(--text-muted);font-size:var(--fs-sm)}

/* Footer */
.gn-footer{border-top:1px solid var(--line);background:var(--bg-sunk);padding:var(--space-7) var(--space-6) max(var(--space-6),calc(var(--safe-bottom) + var(--space-5)));display:grid;gap:var(--space-4);justify-items:center;text-align:center}
.gn-footer .gn-orn{max-width:220px}
.gn-footer h3{font:var(--type-script-label);font-size:var(--fs-xl);color:var(--accent-primary)}
.gn-footer p{margin:0;max-width:68ch;font-size:var(--fs-sm);line-height:1.6;color:var(--ink-700)}
.gn-footer__links{display:flex;gap:var(--space-5);font-size:var(--fs-sm);flex-wrap:wrap;justify-content:center}
.gn-footer .gn-footer__admin{color:var(--text-faint)}

/* Admin */
.gn-admin{display:grid;gap:clamp(24px,5vw,36px);align-content:start}
.gn-admin>form:empty{display:none}
.gn-main--narrow{max-width:880px}
.gn-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.gn-heading{display:flex;align-items:baseline;gap:14px;font:var(--type-heading);font-size:clamp(34px,8vw,44px);text-wrap:pretty;overflow-wrap:anywhere}
.gn-heading .gn-badge--number{font-size:inherit}
.gn-heading .gn-badge--soft{align-self:center}
.gn-bar--section{border-top:1px solid var(--line);padding-top:clamp(24px,5vw,36px);margin-top:clamp(12px,3vw,24px)}
.gn-heading__count{font-style:italic;color:var(--sage-500)}
h2.gn-heading{font-size:var(--fs-xl)}
.gn-subheading{font:var(--type-subheading);color:var(--text-muted)}
.gn-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;font-family:var(--font-poem);font-style:italic;font-size:var(--fs-md);color:var(--text-muted)}
.gn-panel{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(20px,4vw,32px);display:grid;gap:20px;margin:0}
.gn-panel__title{font:var(--type-script-label);font-size:var(--fs-xl);color:var(--accent-primary);line-height:1.2}
.gn-form{display:grid;gap:24px;margin:0}
.gn-field{display:grid;gap:8px}
.gn-field__label{font:var(--type-label);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.gn-input{width:100%;box-sizing:border-box;min-height:48px;padding:10px 16px;background:var(--paper-50);border:1px solid var(--line-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-inset);font:400 var(--fs-md)/1.3 var(--font-poem);color:var(--text-body);outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.gn-input:focus{border-color:var(--sage-700);box-shadow:0 0 0 4px var(--sage-100)}
.gn-input::placeholder{color:var(--text-faint)}
textarea.gn-input{padding:14px 16px;resize:vertical;font-size:var(--fs-lg);line-height:1.45}
textarea.gn-input--text{font:400 var(--fs-base)/1.6 var(--font-text)}
.gn-select{position:relative;display:block}
.gn-select--narrow{max-width:320px}
.gn-select::after{content:"▾";position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--sage-700);font-size:14px}
.gn-select select{padding-right:44px;-webkit-appearance:none;appearance:none}
.gn-select--narrow select{font:400 var(--fs-base)/1.3 var(--font-text)}
.gn-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.gn-actions__group{display:flex;gap:12px;flex-wrap:wrap;margin-left:auto}
.gn-actions form{margin:0}
.gn-list{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.gn-row{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:14px clamp(16px,3vw,24px)}
.gn-row+.gn-row{border-top:1px solid var(--line)}
.gn-row__main{flex:1 1 260px;min-width:0;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gn-row__name{font-family:var(--font-poem);font-size:var(--fs-md);color:var(--text-body);overflow-wrap:anywhere}
.gn-row__text{flex:1 1 200px;min-width:0;font-family:var(--font-poem);font-size:var(--fs-md);white-space:pre-wrap;overflow-wrap:anywhere}
.gn-row__meta{display:flex;align-items:baseline;gap:6px;font-family:var(--font-poem);font-size:var(--fs-sm);color:var(--text-muted)}
.gn-row__meta .gn-badge--number{font-size:var(--fs-sm)}
.gn-row__end{margin-left:auto;display:flex}
.gn-leaves{display:grid;gap:12px}
.gn-leaves .gn-row{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-sm)}
.gn-note{margin:0;padding:16px 20px;background:var(--sage-100);border-radius:var(--radius-md);font-family:var(--font-poem);font-style:italic;font-size:var(--fs-md);color:var(--sage-900);text-wrap:pretty}
.gn-note p{margin:0}
.gn-nav button{font-family:var(--font-poem);font-size:var(--fs-md);color:var(--ink-700);background:none;border:0;padding:.2em 0;cursor:pointer}
.gn-nav button:hover{color:var(--accent-primary);text-decoration:underline wavy var(--sage-300);text-underline-offset:.3em}
.gn-nav form{display:contents}
.gn-burger__box{position:absolute;opacity:0;pointer-events:none}
.gn-burger{display:none}

/* Admin login */
.gn-login{flex:1;display:grid;place-items:center;padding:clamp(48px,10vw,96px) 20px}
.gn-login .gn-panel{width:100%;max-width:400px;box-sizing:border-box;gap:24px;text-align:center}
.gn-login .gn-field{text-align:left}
.gn-login h1{font:var(--type-script-label);font-size:var(--fs-2xl);color:var(--accent-primary);line-height:1.2;margin-bottom:10px}
.gn-login__back{font-family:var(--font-poem);font-style:italic;font-size:var(--fs-sm)}

/* Admin statistics */
.gn-total{margin:0;display:flex;align-items:baseline;gap:10px;font-family:var(--font-poem);font-size:var(--fs-md);color:var(--text-muted)}
.gn-total strong{font-weight:400;font-size:var(--fs-2xl);color:var(--sage-700);line-height:1}
.gn-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(20px,4vw,32px);align-items:start}
.gn-stats .gn-panel{gap:12px;padding:clamp(20px,4vw,28px)}
.gn-stats h2{font:var(--type-subheading)}
.gn-table{display:grid;grid-template-columns:auto 1fr auto;gap:0;font-family:var(--font-text);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.gn-table>span{padding:7px 0;border-bottom:1px solid var(--line)}
.gn-table .gn-table__head{font:var(--type-label);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:8px 0;border-bottom-color:var(--line-strong)}
.gn-table .gn-table__value{text-align:right}
.gn-table .gn-table__zero{color:var(--text-faint)}
.gn-table .gn-table__bar{display:flex;align-items:center;padding-left:16px;padding-right:16px}
.gn-table__bar i{display:block;height:8px;border-radius:var(--radius-pill);background:var(--sage-300)}

/* Live search results */
.is-hidden{display:none!important}
.typesense-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:clamp(32px,6vw,40px)}
.typesense-results:empty{display:none}
.typesense-results .card{display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-soft)}
.typesense-results .card:hover{border-color:var(--line-strong)}
.typesense-results .card-header{order:2;display:flex;align-items:baseline;gap:.6em;padding:0 var(--space-6) var(--space-3);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-faint)}
.typesense-results .card-header-title{margin:0}
.typesense-results .card-header-icon{font-family:var(--font-poem);font-style:italic;font-size:var(--fs-sm);letter-spacing:0;color:var(--text-number)}
.typesense-results .card-content{order:1;flex:1;padding:var(--space-6) var(--space-5)}
.typesense-results .card-content>.content:first-child{font-family:var(--font-poem);font-size:var(--fs-lg);line-height:var(--lh-poem);text-align:center;white-space:pre-wrap}
.typesense-results hr{border:0;height:1px;margin:var(--space-5) 0 var(--space-3);background:linear-gradient(90deg,transparent,var(--line-strong) 30%,var(--line-strong) 70%,transparent)}
.typesense-results .is-size-7{font-size:var(--fs-sm);line-height:1.55;color:var(--text-muted)}
.typesense-results p.is-size-7{margin:0 0 var(--space-1);font-family:var(--font-poem);font-style:italic;color:var(--accent-primary)}
.typesense-results .card-footer{order:3;display:flex;justify-content:flex-end;padding:0 var(--space-4) var(--space-3)}
.typesense-results .card-footer-item{display:inline-flex;align-items:center;min-height:var(--tap-min);font-family:var(--font-poem);font-style:italic;font-size:var(--fs-sm);color:var(--accent-primary);text-decoration:none}
.typesense-results .card-footer-item::after{content:"→";font-style:normal;margin-left:.45em;transition:transform var(--dur-base) var(--ease-swing)}
.typesense-results .card-footer-item:hover{color:var(--link-hover)}
.typesense-results .card-footer-item:hover::after{transform:translateX(3px)}

/* Phone */
@media (max-width:640px){
.gn-header{flex-wrap:wrap;gap:var(--space-2);padding-left:var(--gutter-phone);padding-right:var(--gutter-phone);position:sticky;top:0;z-index:10;background:color-mix(in oklab,var(--bg-page) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.gn-brand__word{font-size:38px}
.gn-burger{display:inline-flex;align-items:center;gap:.5em;min-height:var(--tap-min);box-sizing:border-box;padding:0 var(--space-4);font-family:var(--font-poem);font-size:17px;border-radius:var(--radius-md);cursor:pointer}
.gn-burger::before{content:"";width:18px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M1 2.2c5-.6 11-.3 16 0M1 7c4 .4 9 .3 12 0M1 11.8c5-.5 11-.2 16 .2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M1 2.2c5-.6 11-.3 16 0M1 7c4 .4 9 .3 12 0M1 11.8c5-.5 11-.2 16 .2'/%3E%3C/svg%3E") center/contain no-repeat}
.gn-burger__box:checked+.gn-burger::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M3 1.5c4 3.4 8 7 12 11M15 1.5C11 5 7 8.600 3 12.500'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M3 1.5c4 3.4 8 7 12 11M15 1.5C11 5 7 8.600 3 12.500'/%3E%3C/svg%3E")}
.gn-burger__box:focus-visible+.gn-burger{outline:2px solid var(--sage-700);outline-offset:2px}
.gn-burger__box:checked+.gn-burger{background:var(--sage-100);border-color:var(--sage-500);box-shadow:var(--shadow-inset)}
.gn-nav{display:none;flex-direction:column;align-items:flex-start;gap:0;width:100%}
.gn-burger__box:checked~.gn-nav{display:flex}
.gn-nav a,.gn-nav button{font-size:17px;white-space:nowrap;min-height:var(--tap-min);display:inline-flex;align-items:center}
.gn-crumbs{font-size:14px}
.gn-crumbs a{min-height:var(--tap-min);display:inline-flex;align-items:center}
.gn-deutung{padding:var(--space-5) var(--gutter-phone);border-radius:var(--radius-md)}
.gn-deutung__label{font-size:var(--fs-lg)}
.gn-deutung__text{font-size:17px;line-height:1.62}
.gn-gnome__head{padding:var(--space-4) var(--space-5) 0}
.gn-gnome__body{padding:var(--space-5) var(--space-4)}
.gn-gnome__foot{padding-left:var(--space-5)}
.gn-book{min-height:240px;padding:var(--space-6) var(--space-4) var(--space-5);gap:var(--space-4)}
.gn-book::after{inset:8px 8px 8px 13px}
.gn-book__title{font-size:var(--fs-xl)}
.gn-book__kicker{font-size:var(--fs-md)}
.gn-book .gn-btn{font-size:14px;padding:.8em 1em .64em}
.gn-book--lg{min-height:440px}
.gn-search{height:48px;padding-left:var(--space-4)}
.gn-search input{font-size:17px}
.gn-pages{gap:var(--space-2) var(--space-4)}
.gn-pages__label{order:-1;width:100%;text-align:center}
.gn-footer{padding-left:var(--gutter-phone);padding-right:var(--gutter-phone)}
.gn-footer p{font-size:14px}
.gn-footer__links{flex-direction:column;gap:var(--space-2)}
.gn-orn__glyph{font-size:var(--fs-md)}
.typesense-results .card-content>.content:first-child{font-size:var(--fs-md)}
}
@media (max-width:760px){
.gn-spread__page{min-height:0;padding:var(--space-5) var(--space-5) var(--space-4)}
.gn-poem--hero{font-size:clamp(30px,8.4vw,44px)}
}

/* Touch and motion */
@media (hover:none){
.gn-book:hover,.gn-btn:hover{transform:none}
.gn-gnome:active{background:var(--paper-100)}
.gn-book:active{transform:scale(.985);transition-duration:var(--dur-fast)}
.gn-btn:active{transform:scale(.97)}
}
@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important}}
