/* Giulio Fellin — website redesign | plain HTML + CSS, no framework */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Libre+Baskerville:wght@400;700&display=swap');
:root{--paper:#f7faff;--surface:#ffffff;--ink:#1c2b42;--muted:#617188;--accent:#007FFF;--accent-dark:#005bb4;--line:#dce6f3;--soft:#e9f3ff;--sand:#e6eef9;--serif:'Libre Baskerville',Georgia,serif;--sans:'DM Sans',system-ui,-apple-system,sans-serif;--mono:'DM Mono',ui-monospace,monospace;--radius:18px;--shadow:0 18px 60px rgba(34,83,154,.07)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6.7rem}
body{margin:0;background:var(--paper);font:400 16px/1.76 var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}a{color:var(--accent-dark);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:#004d9b}a:focus-visible,summary:focus-visible{outline:3px solid #80bdff;outline-offset:4px;border-radius:3px}button,input{font:inherit}
::selection{background:#d5eaff;color:var(--ink)}.wrap{width:min(1168px,calc(100% - 64px));margin-inline:auto}.skip{position:absolute;left:-9999px;top:10px;z-index:99;background:#fff;padding:8px 14px}.skip:focus{left:10px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(247,250,255,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(204,220,243,.83)}
.header-inner{min-height:89px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex:none}
.brand-symbol{width:43px;height:43px;border:1px solid #c6d9f0;border-radius:12px;display:grid;place-items:center;color:var(--accent);font-family:var(--serif);font-size:21px;letter-spacing:-.11em;font-weight:700;padding-right:4px;background:#f0f7ff}
.brand-text{display:block;line-height:1.15}.brand-name{font-family:var(--serif);display:block;font-size:17px;letter-spacing:-.04em}.brand-caption{display:block;color:var(--muted);font:10px/1.7 var(--mono);text-transform:uppercase;letter-spacing:.045em;margin-top:5px}
.desktop-nav{display:flex;align-items:center;gap:21px}.desktop-nav a{font-size:12.5px;font-weight:700;letter-spacing:.005em;text-decoration:none;color:var(--muted);white-space:nowrap;position:relative;line-height:2}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:var(--accent-dark)}.desktop-nav a[aria-current=page]:after{content:'';height:3px;width:100%;position:absolute;left:0;bottom:-10px;background:var(--accent);border-radius:4px}
.mobile-nav{display:none;position:relative}.mobile-nav summary{font-size:14px;font-weight:700;list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:7px 12px}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav[open] summary{background:var(--soft)}.mobile-nav-list{position:absolute;right:0;top:44px;width:210px;display:grid;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px;border-radius:14px}.mobile-nav-list a{padding:8px 11px;border-radius:8px;text-decoration:none;font-size:14px}.mobile-nav-list a[aria-current=page]{background:var(--soft);font-weight:700}
.hero{position:relative;padding:92px 0 83px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(300px,.86fr);align-items:center;gap:52px}.eyebrow{display:flex;align-items:center;gap:13px;color:var(--accent);font:500 11px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.125em}.eyebrow:before{content:'';display:block;width:27px;height:1px;background:var(--accent)}.hero h1,.page-hero h1{font-family:var(--serif);font-weight:400;letter-spacing:-.075em;line-height:1.15}.hero h1{font-size:clamp(52px,6.7vw,91px);margin:24px 0 22px}.page-hero h1{font-size:clamp(46px,5.2vw,74px);margin:18px 0 20px}.period{color:var(--accent)}.hero-lead{font-family:var(--serif);font-size:clamp(18px,2vw,24px);line-height:1.55;max-width:570px;margin:0 0 17px}.hero-sub{max-width:620px;color:var(--muted);font-size:15px;line-height:1.9;margin:0 0 28px}.hero-sub a{font-weight:700}.hero-actions{display:flex;gap:11px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;text-decoration:none;border:1px solid var(--accent);padding:11px 17px;border-radius:8px;font-size:13px;font-weight:700;transition:transform .2s ease,background .2s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--accent);color:white}.btn-primary:hover{background:var(--accent-dark);color:white}.btn-outline{background:transparent;color:var(--accent-dark)}.btn-outline:hover{background:var(--soft)}.arrow{font-size:18px;line-height:1}.hero-figure{width:100%;position:relative;background:#e9efe9;border-radius:38% 38% 34% 34%/39% 43% 38% 41%;padding:38px;display:flex;align-items:center;aspect-ratio:1.08}.hero-figure img,.hero-figure>svg{width:100%;height:auto;filter:drop-shadow(0 22px 30px rgba(34,83,154,.11))}.figure-label{position:absolute;right:-6px;bottom:-13px;background:var(--surface);padding:16px 23px;border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow);font:11px/1.5 var(--mono);color:var(--muted)}.figure-label strong{display:block;font:600 14px/1.5 var(--sans);color:var(--ink)}
.section-shell{padding:74px 0;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:32px}.section-label{font:500 11px/1.4 var(--mono);color:var(--accent);letter-spacing:.12em;text-transform:uppercase}.section-heading h2,.content-section h2{font:400 clamp(27px,3.1vw,40px)/1.26 var(--serif);letter-spacing:-.05em;margin:8px 0}.section-heading p{color:var(--muted);max-width:480px;margin:0;font-size:14px}.text-link{font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}.text-link .arrow{margin-left:8px}.overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.overview-card{min-height:320px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:31px;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}.overview-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.card-index{font:11px var(--mono);color:var(--muted)}.card-glyph{width:42px;height:42px;display:grid;place-items:center;border:1px solid #d0e4f9;border-radius:50%;font:24px var(--serif);color:var(--accent)}.overview-card h3{font:400 27px/1.25 var(--serif);letter-spacing:-.045em;margin:0 0 13px}.overview-card p{font-size:14px;color:var(--muted);margin:0 0 25px}.overview-card .text-link{margin-top:auto}.info-band{background:var(--accent-dark);color:#f5faff;border-radius:18px;padding:35px 43px;display:grid;grid-template-columns:1fr 1.3fr;align-items:center;gap:36px}.info-band .section-label{color:#c4e4ff}.info-band h2{font:400 25px/1.42 var(--serif);margin:6px 0}.info-band p{color:#dcecff;margin:0;font-size:14px}.chain{font-family:var(--mono);font-size:12px;line-height:2.2;word-break:normal}.chain span{display:inline-block;border:1px solid rgba(221,239,255,.3);border-radius:5px;padding:2px 7px;margin:3px}.chain b{font-weight:400;color:#c4e4ff}.creative-strip{display:grid;grid-template-columns:1fr 1.15fr;gap:38px;align-items:center}.creative-strip .visual{height:240px;background:linear-gradient(140deg,#e9f2ff,#eaf0fa);border-radius:18px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.creative-strip .visual:before,.creative-strip .visual:after{content:'';display:block;width:120px;height:174px;border-radius:10px;border:5px double #4b8dd3;background:#f8fbff;position:absolute;box-shadow:0 15px 26px rgba(34,83,154,.12)}.creative-strip .visual:before{transform:translateX(-42px) rotate(-17deg)}.creative-strip .visual:after{transform:translateX(49px) rotate(13deg);background:linear-gradient(135deg,#fafcff,#eaf3ff)}.visual-mark{z-index:1;font:58px var(--serif);color:var(--accent);transform:translateX(48px) rotate(13deg)}
.page-hero{padding:74px 0 48px}.page-hero .intro{font-size:16px;line-height:1.9;color:var(--muted);max-width:790px;margin:0}.breadcrumb{font:11px var(--mono);color:var(--muted);margin-bottom:21px}.breadcrumb a{text-decoration:none}.breadcrumb span{margin:0 10px;color:#a7bbd0}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 226px;gap:62px;align-items:start;padding-bottom:90px}.content-section{padding:0 0 39px;margin-bottom:39px;border-bottom:1px solid var(--line)}.content-section:last-child{border:0;margin-bottom:0}.content-section h2{font-size:30px;margin:0 0 21px}.content-section h3{font-size:19px;line-height:1.5;margin:20px 0 10px;letter-spacing:-.02em}.content-section p{margin:0 0 16px}.content-section p:last-child{margin-bottom:0}.sidebox{position:sticky;top:119px;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:25px}.sidebox .section-label{margin-bottom:15px;display:block}.sidebox a{display:block;font-size:13px;text-decoration:none;padding:7px 0;color:var(--muted);border-bottom:1px solid #eaf1fa}.sidebox a:hover{color:var(--accent)}.sidebox a:last-child{border-bottom:0}.side-note{color:var(--muted);font-size:12px;line-height:1.7;margin-top:22px}.small-stat{font:28px var(--serif);color:var(--accent);margin-bottom:2px}.kicker{font:500 10px var(--mono);letter-spacing:.10em;text-transform:uppercase;color:var(--accent)}
/* Research bibliography */
.publication-group{margin:0 0 45px}.pub-year{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid #bfd3eb;margin-bottom:10px}.pub-year h2{font:400 29px var(--serif);letter-spacing:-.045em;margin:0}.pub-count{font:11px var(--mono);color:var(--muted)}.pub-list{list-style:none;margin:0;padding:0}.publication{display:grid;grid-template-columns:37px 1fr;gap:14px;border-bottom:1px solid var(--line);padding:19px 0 22px}.pub-number{color:#86a7d0;font:12px/2.15 var(--mono)}.pub-title{font:600 16px/1.5 var(--sans);letter-spacing:-.012em;margin:0}.pub-title a{text-decoration:none}.pub-title a:hover{text-decoration:underline}.pub-authors{font-size:13px;color:var(--ink);line-height:1.72;margin:7px 0 3px}.pub-meta{font-size:12.5px;color:var(--muted);line-height:1.68;margin:0}.pub-aside{font-size:12px;color:var(--accent);margin-top:8px}.thesis-card{padding:27px;background:var(--soft);border:1px solid #c9def7;border-radius:15px}.thesis-card h3{font:400 22px var(--serif);margin:0 0 8px}
/* Teaching */
.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.course-card{padding:24px;border:1px solid var(--line);background:var(--surface);border-radius:14px}.course-card h3{font:600 17px/1.4 var(--sans);margin:7px 0 8px}.course-card p{font-size:13px;color:var(--muted);margin:0 0 15px}.edition{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.edition-label{width:100%;font:10px var(--mono);text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.chip{display:inline-block;border:1px solid #c8daee;border-radius:5px;padding:3px 8px;text-decoration:none;color:var(--accent-dark);background:var(--soft);font:11px/1.65 var(--mono)}.chip:hover{background:#d9eaff}
/* Events */
.event-card{padding:29px;border:1px solid var(--line);border-radius:15px;background:var(--surface);margin-bottom:17px}.event-top{display:flex;justify-content:space-between;gap:20px;align-items:start}.event-top h3{font:400 23px/1.4 var(--serif);margin:5px 0 11px}.event-card p{font-size:14px;color:var(--muted)}.event-date{font:11px/1.8 var(--mono);color:var(--accent);white-space:nowrap;text-align:right}.event-card .text-link{display:inline-block;margin-top:7px}.event-sessions{list-style:none;padding:0;margin:10px 0 18px}.event-sessions li{padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.event-sessions li:last-child{border-bottom:0}.event-sessions strong{color:var(--accent);font-weight:700}.event-sessions span{color:var(--muted)}.event-card details{font-size:13px;color:var(--muted);margin-top:10px}.event-card summary{color:var(--accent-dark);font-weight:700;cursor:pointer}
/* Groups */
.assoc-block{display:grid;grid-template-columns:150px 1fr;gap:28px;border-top:1px solid var(--line);padding:22px 0}.assoc-block h3{font:500 11px var(--mono);color:var(--accent);letter-spacing:.12em;margin:5px 0;text-transform:uppercase}.association-list{padding:0;margin:0;list-style:none}.association-list li{padding:0 0 14px;font-size:14px}.association-list li:last-child{padding-bottom:0}.association-list .details{display:block;color:var(--muted);font-size:12.5px;margin-top:3px}.association-list li.nested{padding-left:21px;border-left:2px solid #cfe1f6;margin:4px 0 12px 7px}
/* Playing cards */
.deck-feature{display:grid;grid-template-columns:180px 1fr;gap:29px;padding:29px 0;border-bottom:1px solid var(--line);align-items:center}.deck-feature:first-child{padding-top:0}.deck-feature:last-child{border-bottom:none}.deck-illustration{height:188px;background:#edf5ff;border-radius:15px;display:grid;place-items:center;position:relative;overflow:hidden}.deck-illustration:before{content:'';position:absolute;border:4px double #8eb4e2;background:#fdf9ec;width:95px;height:139px;border-radius:9px;transform:rotate(-10deg);box-shadow:0 8px 20px #4a82c540}.deck-illustration span{position:relative;font:49px var(--serif);transform:rotate(-10deg);color:var(--accent)}.deck-illustration.rose{background:#f0e6e2}.deck-illustration.rose:before{border-color:#bd9b94}.deck-illustration.rose span{color:#9d6d69}.deck-illustration.gold{background:#eee7d7}.deck-illustration.gold:before{border-color:#baa277}.deck-illustration.gold span{color:#977a4d}.deck-illustration.blue{background:#e2eaf0}.deck-illustration.blue:before{border-color:#8a9fb2}.deck-illustration.blue span{color:#5a788f}.deck-feature h2{font:400 24px var(--serif);letter-spacing:-.035em;margin:4px 0 12px}.deck-feature p{color:var(--muted);font-size:14px;margin:0 0 14px}.deck-actions{display:flex;gap:13px;flex-wrap:wrap}
/* Elementa */
.rules-tabs{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 36px}.rules-tabs a{text-decoration:none;border:1px solid #c6d9ef;padding:8px 13px;border-radius:8px;font-weight:700;font-size:13px;background:var(--soft)}.rules-block{margin-bottom:65px}.rules-block > h2{font:400 32px var(--serif);margin:0 0 26px}.rules-block h3{font:600 17px var(--sans);margin:25px 0 9px}.rules-block p,.rules-block li{font-size:14px}.rules-block ul{padding-left:22px}.rules-block li{padding-bottom:7px}.callout{padding:22px 25px;background:var(--soft);border-left:3px solid var(--accent);border-radius:0 11px 11px 0;margin:22px 0}.suit-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:17px 0 22px}.suit{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:13px 6px;text-align:center}.suit b{display:block;font:28px var(--serif);color:var(--accent)}.suit span{font:11px var(--mono);color:var(--muted)}
.site-footer{background:#e7f2ff;padding:48px 0 26px;border-top:1px solid #dce7f5}.footer-main{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:start}.footer-main h2{font:400 26px var(--serif);margin:0 0 7px}.footer-main p{font-size:13px;color:var(--muted);margin:0;max-width:390px}.footer-links{display:flex;justify-content:flex-end;gap:13px 20px;flex-wrap:wrap}.footer-links a{font-size:12px;text-decoration:none;font-weight:600}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;font:11px/1.7 var(--mono);color:var(--muted);padding-top:29px;margin-top:34px;border-top:1px solid #d0dff0}.footer-bottom a{text-decoration:none;color:inherit}
@media(max-width:1050px){.desktop-nav{gap:12px}.desktop-nav a{font-size:11.5px}.brand-caption{display:none}.brand-name{font-size:16px}.hero-grid{gap:20px}.content-layout{gap:28px}}
@media(max-width:860px){.desktop-nav{display:none}.mobile-nav{display:block}.hero-grid{grid-template-columns:1fr}.hero{padding:62px 0}.hero-figure{max-width:420px;margin-inline:auto}.overview-grid{grid-template-columns:1fr 1fr}.overview-card:last-child{grid-column:span 2;min-height:255px}.overview-card{min-height:290px}.content-layout{grid-template-columns:1fr}.page-aside{display:none}.hero h1{font-size:clamp(50px,10vw,80px)}.creative-strip{gap:26px}}
@media(max-width:650px){.wrap{width:min(100% - 36px,1168px)}.header-inner{min-height:72px}.hero{padding:50px 0 65px}.hero-figure{max-width:315px}.figure-label{right:0;bottom:-6px}.page-hero{padding:52px 0 40px}.page-hero h1{font-size:45px}.overview-grid,.course-grid,.creative-strip{grid-template-columns:1fr}.overview-card,.overview-card:last-child{grid-column:auto;min-height:250px}.card-top{margin-bottom:21px}.section-shell{padding:53px 0}.section-heading{display:block}.section-heading .text-link{display:inline-block;margin-top:18px}.info-band{grid-template-columns:1fr;padding:28px;gap:10px}.content-layout{padding-bottom:54px}.assoc-block{grid-template-columns:1fr;gap:5px}.deck-feature{grid-template-columns:98px 1fr;gap:15px}.deck-illustration{height:150px}.deck-illustration:before{height:107px;width:71px}.deck-illustration span{font-size:35px}.deck-feature h2{font-size:19px}.event-top{display:block}.event-date{text-align:left}.footer-main{grid-template-columns:1fr}.footer-links{justify-content:flex-start}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:10px}.suit-row{gap:4px}.suit{padding:10px 3px}.suit b{font-size:20px}.suit span{font-size:9px}.publication{grid-template-columns:26px 1fr;gap:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.overview-card{transition:none}}

.greek-motto{margin-top:14px!important;font:italic 13px/1.8 Georgia,serif!important;color:var(--accent)!important}

/* Navigation revision — three top-level entries with accessible nested menus */
.brand-symbol{display:none} /* Original brand image will be inserted once supplied. No GF monogram. */
.desktop-nav{gap:28px;align-items:center}
.desktop-nav .nav-home,.desktop-nav .nav-group>summary{font:700 13px/2 var(--sans);color:var(--muted);text-decoration:none;cursor:pointer;white-space:nowrap}
.desktop-nav .nav-group>summary:hover,.desktop-nav .nav-group.section-active>summary{color:var(--accent-dark)}
.nav-group{position:relative}
.nav-group>summary{list-style:none;display:flex;align-items:center;gap:9px;user-select:none}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::marker{content:''}
.chevron{width:7px;height:7px;display:inline-block;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.nav-group[open]>summary .chevron{transform:rotate(225deg) translateY(-1px)}
.nav-dropdown{z-index:45;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:8px;box-shadow:var(--shadow)}
.desktop-nav .nav-dropdown{position:absolute;top:calc(100% + 15px);right:-16px;width:220px;display:grid;gap:2px}
.desktop-nav .nav-dropdown:before{content:'';position:absolute;top:-18px;left:0;width:100%;height:18px}
.desktop-nav .nav-dropdown a{padding:10px 12px;border-radius:6px;white-space:normal;font-size:13px;line-height:1.5}
.desktop-nav .nav-dropdown a:hover,.desktop-nav .nav-dropdown a[aria-current=page]{background:var(--soft)}
.desktop-nav .nav-dropdown a[aria-current=page]:after{display:none}
.mobile-nav-list{width:min(300px,calc(100vw - 36px));gap:4px;max-height:75vh;overflow:auto}
.mobile-nav-list .nav-group>summary{cursor:pointer;font-size:14px;color:var(--ink);padding:10px 11px;font-weight:700;border-radius:8px}
.mobile-nav-list .nav-group>summary:hover{background:var(--soft)}
.mobile-nav-list .nav-dropdown{border:0;border-left:2px solid var(--line);border-radius:0;box-shadow:none;padding:2px 0 2px 8px;margin:0 0 8px 14px;display:grid;gap:2px}
.mobile-nav-list .nav-dropdown a{padding:8px 11px}
.mobile-nav-list .nav-home{padding:10px 11px}
/* Home photograph — original site URL used temporarily pending a packaged local image */
.hero-figure{border-radius:50% 50% 24% 24% / 40% 40% 12% 12%;aspect-ratio:0.93;max-height:545px;background:linear-gradient(150deg,#edf5ff,#e6f1ff);overflow:hidden;padding:22px 13px 0;align-self:end}
.hero-figure img.profile-photo{display:block;align-self:end;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:none}
.hero-figure .figure-label{display:none}
.hero .eyebrow{letter-spacing:.16em}
/* Allow the Erdős names to wrap in the available width */
.info-band{grid-template-columns:minmax(0,0.72fr) minmax(0,1.5fr)}
.chain{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.chain span{font-size:11px;white-space:nowrap;margin:3px 0}
.chain b{padding:0 2px}
.site-disclaimer{grid-column:1 / -1;color:var(--muted);font-size:11px;margin:0}
/* Conferences: image slot instead of expandable 'About the conference' text */


.conference-logo span{font:500 10px var(--mono);letter-spacing:.18em}
.event-primary-link{margin:14px 0 6px!important}
/* Bib classification */
.writing-divider{padding:40px 0 25px;margin-top:30px;border-top:2px solid #bfd3eb}
.writing-divider h2{font:400 29px var(--serif);letter-spacing:-.04em;margin:8px 0}
.writing-divider p{font-size:14px;color:var(--muted);max-width:650px;margin:5px 0 0}
.secondary-publications{margin-top:6px}
.pub-type{display:inline-block;color:#375b89;background:#e9efe9;border:1px solid #cadff5;padding:2px 7px;border-radius:5px;font:500 10px var(--mono);letter-spacing:.05em;margin-bottom:9px}
/* Penguins page */
.penguins-figure{margin:28px 0 0;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:16px;max-width:620px}
.penguins-figure img{display:block;width:100%;height:auto;border-radius:8px}
.penguins-figure figcaption{font:12px var(--mono);color:var(--muted);margin-top:11px}
@media(max-width:860px){.info-band{grid-template-columns:1fr}.hero-figure{max-width:370px}}
@media(max-width:650px){.hero-figure{max-width:300px;max-height:360px;padding:15px 8px 0}.chain{gap:2px}.chain span{white-space:normal}.event-top{display:block}.event-date{display:block}.penguins-figure{padding:12px}}

/* v3: user-supplied logo, simpler one-line footer, and event identity assets */
.brand-logo{width:48px;height:48px;object-fit:cover;border-radius:9px;display:block;flex:none;box-shadow:0 1px 4px rgba(0,92,183,.08)}
.site-footer{padding:16px 0 18px;background:var(--paper);border-top:1px solid var(--line)}
.footer-line{display:flex;align-items:center;justify-content:center;color:var(--muted);font:11px/1.6 var(--mono)}


.conference-logo--empty{background:transparent;border:1px dashed #bfd3eb;box-shadow:none}
.conference-logo--empty span{text-transform:uppercase;letter-spacing:.11em;color:var(--muted)}
.course-card .edition{flex-wrap:wrap}
@media(max-width:650px){
  .brand-logo{width:43px;height:43px;border-radius:8px}
  
  .site-footer{padding:14px 0}
}

/* v4 — profile-photo refinements */
.hero-figure { aspect-ratio:.83; max-height:560px; }
.hero-figure img.profile-photo { object-fit:contain; object-position:center bottom; }
@media(max-width:650px){.hero-figure{aspect-ratio:.82;max-height:390px}}


/* v5 — Stable event-logo dimensions across desktop, tablet and phone.
   Content is in its own column, so text never flows awkwardly around the logo.
   The logo frame and image do not use viewport-relative units or breakpoint sizes. */
.event-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px;
  grid-template-areas: "content logo";
  align-items: start;
  column-gap: 22px;
}
.event-content { grid-area: content; min-width: 0; }
.conference-logo,
.conference-logo--dagstuhl {
  grid-area: logo;
  float: none;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 160px;
  height: 148px;
  min-width: 160px;
  min-height: 148px;
  max-width: 160px;
  max-height: 148px;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(34,83,154,.045);
}
.conference-logo img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}
@media (max-width: 650px) {
  /* Move the entire, unchanged 160 x 148 px frame above the content. */
  .event-card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "logo" "content";
    row-gap: 20px;
  }
  .conference-logo,
  .conference-logo--dagstuhl { margin-inline: auto; }
}


/* v6 — Generous vertical breathing room around each conference logo.
   The 160 × 148 px frame stays fixed at every breakpoint; the artwork is
   slightly smaller and sits higher, leaving extra clearance below.
   The event card also gets more bottom space. */
.event-card {
  padding-bottom: 44px;
}
.conference-logo,
.conference-logo--dagstuhl {
  padding: 16px 20px 32px;
}
@media (max-width: 650px) {
  .event-card { padding-bottom: 40px; }
}


/* v7 — user-supplied decks and responsive bilingual Elementa guide */
.creative-strip .visual.showcase-photo{height:auto;aspect-ratio:16/9;background:#f1f6ff}
.creative-strip .visual.showcase-photo:before,.creative-strip .visual.showcase-photo:after{display:none}
.creative-strip .visual.showcase-photo img{width:100%;height:100%;object-fit:contain;display:block}
.deck-feature:has(.deck-illustration--photo){grid-template-columns:235px minmax(0,1fr)}
.deck-illustration--photo{aspect-ratio:4/3;height:auto;background:transparent}
.deck-illustration--photo:before,.deck-illustration--photo:after{display:none}
.deck-illustration--photo img{width:100%;height:100%;display:block;object-fit:contain;border-radius:14px}
/* Neutral paper and generous space for long-form game rules */
[hidden]{display:none!important}
.elementa-hero{padding-bottom:42px}
.elementa-layout{max-width:1060px;padding-bottom:90px}
.elementa-layout h2{font:400 clamp(26px,3vw,37px)/1.35 var(--serif);letter-spacing:-.045em;margin:0 0 23px}
.elementa-layout h3{font:600 20px/1.48 var(--sans);letter-spacing:-.02em;margin:30px 0 10px}
.elementa-layout p,.elementa-layout li{font-size:15px;line-height:1.85}
.elementa-layout ul{padding-left:23px;margin:12px 0 23px}
.elementa-intro-line{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:2px 0 28px}
.elementa-intro-line p{max-width:660px;color:var(--muted);margin:0}
.elementa-controls{position:sticky;top:90px;z-index:10;background:rgba(247,250,255,.97);backdrop-filter:blur(12px);padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--line);border-radius:13px;box-shadow:0 8px 25px rgba(34,83,154,.05)}
.control-group{display:flex;align-items:center;gap:14px;min-width:0}
.control-label{font:600 10px/1.5 var(--mono);letter-spacing:.065em;color:var(--muted);white-space:nowrap}
.control-label span{color:#9cb4d0}
.control-choices{display:inline-flex;gap:3px;padding:4px;background:#e7f2ff;border-radius:9px;white-space:nowrap}
.rule-choice{border:0;background:transparent;color:#536b87;font:600 12px/1.4 var(--sans);cursor:pointer;padding:10px 16px;border-radius:7px;transition:background .12s ease}
.rule-choice small{font-size:10px;margin-left:3px;font-weight:400}
.rule-choice:hover{color:var(--accent-dark)}
.rule-choice[aria-pressed="true"]{background:var(--surface);color:var(--accent-dark);box-shadow:0 2px 8px rgba(34,83,154,.12)}
.rule-choice:focus-visible{outline:3px solid #80bdff;outline-offset:2px}
.elementa-mode-info{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:22px 0 30px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}
.mode-mark{font:600 11px var(--mono);color:var(--accent);letter-spacing:.095em}
.mode-mark span{padding-left:9px}
.elementa-rules-content{padding-top:35px}
.elementa-shared{margin-bottom:45px}
.elementa-shared>h2{margin-bottom:20px}
.elementa-suits{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:22px 0 27px}
.elementa-suit{background:var(--surface);border:1px solid var(--line);border-radius:13px;text-align:center;padding:17px 8px 13px;min-width:0}
.elementa-suit img{display:block;width:66px;height:54px;object-fit:contain;margin:0 auto 9px}
.elementa-suit span{display:block;color:var(--muted);font:500 12px var(--mono)}
.elementa-diagrams{margin-top:48px}
.elementa-diagram-heading{margin:0 0 20px}
.elementa-diagram-heading h3{font:400 30px/1.4 var(--serif);margin:11px 0}
.anatomy-desktop{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.anatomy-desktop img{width:100%;height:auto;display:block}
.anatomy-desktop figcaption{color:var(--muted);font:12px/1.7 var(--sans);padding:10px 21px 18px}
.anatomy-mobile{display:none}
.relic-example{display:grid;grid-template-columns: minmax(0,360px) minmax(0,1fr);gap:70px;align-items:center;margin-top:35px;border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:39px 70px 39px 55px}
.relic-card{width:100%;max-width:320px;position:relative;margin-inline:auto;filter:drop-shadow(0 14px 18px rgba(23,28,25,.13))}
.relic-card img{width:100%;height:auto;display:block;border-radius:13px}
.relic-name-highlight{position:absolute;bottom:1.3%;left:2%;right:2%;height:8.5%;border:2px solid rgba(248,248,255,.95);border-radius:10px;box-shadow:0 0 0 4px rgba(0,127,255,.25);pointer-events:none}
.relic-description h3{font:400 28px/1.35 var(--serif);margin:13px 0 16px}
.relic-description p{color:var(--muted);font-size:15px}
.relic-note{display:inline-flex;gap:10px;align-items:center;border-radius:8px;padding:10px 14px;background:var(--soft);color:var(--accent-dark);font:600 13px var(--sans);margin-top:17px}
.relic-id{font:italic 14px var(--serif)!important;color:var(--ink)!important;margin-top:12px}
.elementa-version{max-width:900px;padding-top:10px}
.elementa-version h2{margin-bottom:25px}
.elementa-version h3{border-left:2px solid #bdd6f2;padding-left:14px;margin-top:31px}
.elementa-version p{margin:0 0 18px}
.elementa-version li{padding-bottom:9px}
.elementa-version .rules-score{background:#ebf4ff;padding:22px 25px 14px 47px;border-radius:13px}
.elementa-pdf-callout{margin-top:54px;display:flex;justify-content:space-between;align-items:center;gap:30px;background:#e8f3ff;border:1px solid #cbdff7;border-radius:13px;padding:23px 27px}
.elementa-pdf-callout p{font-size:13px;color:var(--muted);margin:6px 0 0}
.elementa-pdf-links{display:flex;gap:10px;flex-wrap:wrap}
.elementa-pdf-links a{font:600 12px var(--sans);text-decoration:none;border:1px solid #bdd5f1;padding:9px 13px;border-radius:7px;background:var(--surface)}
.elementa-pdf-links a:hover{background:#eef7ff}
@media(max-width:800px){.elementa-controls{top:73px;flex-wrap:wrap;justify-content:flex-start;gap:13px;padding:11px 13px}.control-group{flex:1 0 auto;justify-content:space-between}.relic-example{gap:32px;padding:31px 32px}.elementa-intro-line{display:block}.elementa-intro-line .text-link{display:inline-block;margin-top:10px}}
@media(max-width:650px){.deck-feature:has(.deck-illustration--photo){grid-template-columns:1fr;gap:14px}.deck-illustration--photo{max-width:420px}.elementa-layout{padding-bottom:60px}.elementa-hero{padding-bottom:23px}.elementa-controls{top:73px;border-radius:9px}.control-group{flex-basis:100%;gap:7px}.control-label{font-size:9px}.rule-choice{font-size:12px;padding:7px 13px}.elementa-mode-info{padding:18px 0 23px}.elementa-suits{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.elementa-suit{padding:11px 1px 9px}.elementa-suit img{width:48px;height:42px}.elementa-suit span{font-size:9px}.anatomy-desktop{display:none}.anatomy-mobile{display:grid;grid-template-columns: minmax(0,195px) minmax(0,1fr);gap:14px;align-items:center;background:var(--surface);padding:15px 12px;border:1px solid var(--line);border-radius:15px}.anatomy-mobile>img{display:block;width:100%;height:auto;border-radius:9px}.anatomy-mobile ol{list-style:none;padding:0;margin:0;display:grid;gap:12px}.anatomy-mobile li{display:flex;align-items:start;gap:7px;line-height:1.4;font-size:12px!important}.anatomy-number{font:600 11px var(--mono);color:var(--accent);padding-top:1px}.anatomy-mobile strong{font-weight:600;display:block}.anatomy-mobile small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.relic-example{grid-template-columns:1fr;padding:22px;gap:22px}.relic-card{max-width:270px}.relic-description h3{font-size:25px}.elementa-pdf-callout{display:block}.elementa-pdf-links{margin-top:14px}}
@media(max-width:380px){.anatomy-mobile{grid-template-columns: minmax(0,140px) minmax(0,1fr);gap:11px}.elementa-suit img{width:40px;height:37px}.elementa-suit span{font-size:8px}.control-label{font-size:8px}}
@media(prefers-reduced-motion:reduce){.rule-choice{transition:none}}

/* v8 — Anatomy rebuilt with semantic HTML labels and CSS connectors.
   Only the original card artwork remains raster; labels, lines and rings
   are actual layout elements and switch with the active language. */
.card-anatomy{
  --anatomy-gap:clamp(18px,3vw,36px);
  margin:0; padding:clamp(20px,3.7vw,38px);
  border:1px solid var(--line);border-radius:18px;
  background:radial-gradient(ellipse 70% 80% at 50% 45%,#f3f8ff 0%,#fff 78%);
}
.card-anatomy-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,293px) minmax(0,1fr);
  gap:var(--anatomy-gap);max-width:865px;margin:0 auto;
  align-items:stretch;
}
.card-anatomy-card{position:relative;align-self:start;filter:drop-shadow(0 12px 17px rgba(27,52,97,.15))}
.card-anatomy-card>img{width:100%;height:auto;display:block;border-radius:12px}
.card-anatomy-side{position:relative;min-width:0}
.card-anatomy-callout{
  position:absolute;width:100%;display:flex;align-items:flex-start;
  gap:10px;transform:translateY(-50%);
  padding:5px 1px;min-width:0;
}
.card-anatomy-callout--suit{top:9.5%}
.card-anatomy-callout--base{top:22%}
.card-anatomy-callout--destroy,.card-anatomy-callout--generate{top:88.5%}
.card-anatomy-index{
  flex:0 0 27px;width:27px;height:27px;
  display:grid;place-items:center;border:1px solid #bfd6f0;
  border-radius:50%;background:#e9f3ff;color:var(--accent-dark);
  font:600 10px/1 var(--mono);letter-spacing:-.035em
}
.card-anatomy-text{display:block;min-width:0}
.card-anatomy-text strong{display:block;font:600 13px/1.4 var(--sans);color:var(--ink)}
.card-anatomy-text small{display:block;margin-top:4px;font:400 12px/1.35 var(--sans);color:var(--muted)}
.card-anatomy-callout::after{
  content:"";position:absolute;top:calc(50% - .5px);height:1px;
  background:#81aee0;width:var(--anatomy-gap);opacity:.95
}
.card-anatomy-side--left .card-anatomy-callout::after{right:calc(-1 * var(--anatomy-gap))}
.card-anatomy-side--right .card-anatomy-callout::after{left:calc(-1 * var(--anatomy-gap))}
.card-anatomy-marker{
  position:absolute;pointer-events:none;
  border:2px solid #ffffff;box-shadow:0 0 0 2px #007fff,0 2px 7px rgba(0,0,0,.2);
  background:rgba(255,255,255,.07)
}
.card-anatomy-marker--suit{top:3%;right:5.3%;width:17.4%;aspect-ratio:1;border-radius:50%}
.card-anatomy-marker--base{top:12.5%;right:5.4%;width:17.2%;height:10%;border-radius:9px}
.card-anatomy-marker--destroy{bottom:3.8%;left:4.7%;width:20%;height:11.5%;border-radius:12px}
.card-anatomy-marker--generate{bottom:3.8%;right:4.7%;width:20%;height:11.5%;border-radius:12px}
.card-anatomy figcaption{margin:20px auto 0;max-width:730px;text-align:center;font:12px/1.6 var(--sans);color:var(--muted)}
@media(max-width:720px){
  .card-anatomy{padding:24px 17px}
  .card-anatomy-grid{max-width:510px;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px}
  .card-anatomy-card{grid-column:1/-1;grid-row:1;width:min(58%,270px);justify-self:center}
  .card-anatomy-side{display:contents}
  .card-anatomy-callout{position:static;transform:none;width:auto;background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px 10px;gap:8px;min-height:68px}
  .card-anatomy-callout::after{display:none}
  .card-anatomy-callout--suit{grid-column:1;grid-row:2}
  .card-anatomy-callout--base{grid-column:2;grid-row:2}
  .card-anatomy-callout--destroy{grid-column:1;grid-row:3}
  .card-anatomy-callout--generate{grid-column:2;grid-row:3}
  .card-anatomy-text strong{font-size:12px}
  .card-anatomy-text small{font-size:11px}
  .card-anatomy-index{width:24px;height:24px;flex-basis:24px;font-size:9px}
  .card-anatomy figcaption{margin-top:17px}
}
@media(max-width:380px){
  .card-anatomy{padding:19px 12px}
  .card-anatomy-grid{gap:9px}
  .card-anatomy-callout{padding:10px 8px;gap:6px}
  .card-anatomy-text strong{font-size:11px}
}

/* v9 — Both anatomy headings sit inside their respective bordered panels. */
.card-anatomy > .elementa-diagram-heading {margin:0 0 28px}
.card-anatomy > .elementa-diagram-heading h3 {font-size:clamp(23px, 2.8vw, 30px)}
@media(max-width:720px){
  .card-anatomy > .elementa-diagram-heading {margin-bottom:22px}
  .card-anatomy > .elementa-diagram-heading h3 {margin:8px 0 0}
}

/* v10 — Printable Elementa rulebooks in all four editions. */
.elementa-pdf-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:min(410px,100%);gap:9px}
.elementa-pdf-links a{text-align:center;white-space:nowrap;transition:background .15s,border-color .15s}
.elementa-pdf-links a[aria-current="true"]{border-color:#007fff;background:#eef7ff;color:var(--accent-dark);font-weight:700}
@media(max-width:650px){.elementa-pdf-links{width:100%;min-width:0}}
@media(max-width:375px){.elementa-pdf-links{grid-template-columns:1fr}}


/* v11 — Blue identity drawn from the original logo (#007FFF). */
.btn-primary{background:#005bb4;border-color:#005bb4;color:#fff}
.btn-primary:hover{background:#004d9b;border-color:#004d9b;color:#fff}
.hero-figure{background:#e5f1ff}
.site-header{background:rgba(247,250,255,.94)}
.brand-name{letter-spacing:-.035em}
::selection{background:#cbe5ff;color:var(--ink)}

/* v12: global language switch: consistently beside the main menu on every viewport */
.header-inner{justify-content:space-between}
.site-lang-switch{display:inline-flex;flex:none;align-items:center;gap:3px;border:1px solid var(--line);border-radius:10px;padding:4px;background:var(--surface);box-shadow:0 3px 12px rgba(0,100,200,.04)}
.site-lang-switch button{border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;padding:7px 9px;font:700 11px/1 var(--mono);letter-spacing:.02em;min-height:30px}
.site-lang-switch button[aria-pressed="true"]{background:var(--accent);color:white}
.site-lang-switch button:hover:not([aria-pressed="true"]){background:var(--soft);color:var(--accent-dark)}
.site-lang-switch button:focus-visible{outline:3px solid #a1cdff;outline-offset:2px}
.site-lang-switch>span{color:#9badc0;font:11px var(--mono)}
@media(min-width:861px){.desktop-nav{margin-left:auto}}
@media(max-width:860px){.mobile-nav{order:3;margin-left:0}.site-lang-switch{order:2;margin-left:auto}.header-inner{gap:12px}}
@media(max-width:430px){.wrap{width:min(1168px,calc(100% - 30px))}.header-inner{gap:8px}.brand-logo{width:38px;height:38px}.brand{gap:7px}.brand-name{font-size:15px}.mobile-nav summary{padding:7px 9px}.site-lang-switch{padding:3px}.site-lang-switch button{padding:6px 7px;font-size:10px}}

/* v13 — tidy and accessible per-page navigation. */
.sidebox{max-height:calc(100vh - 140px);overflow-y:auto;overscroll-behavior:contain}
.sidebox a.side-nested{font-size:12px;padding:5px 0 5px 14px;color:var(--muted);border-bottom:0}
.sidebox a.side-nested::before{content:"—";margin-right:7px;color:var(--accent)}
@media(max-width:950px){.sidebox{max-height:none;overflow:visible}}
