:root{--terracotta:#7a432a;--terracotta-dark:#5e321e;--terracotta-light:#9e5b3b;--terracotta-bg:#7a432a14;--terracotta-border:#7a432a40;--bg:#faf7f2;--bg-card:#fff;--border:#e8e2d8;--code-bg:#f3ede2;--text-h:#2c2523;--text:#4a423f;--text-muted:#736b67;--shadow:#7a432a14 0 8px 24px -4px, #0000000a 0 2px 6px -1px;--sans:"Outfit", "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--heading:"Montserrat", "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, Consolas, monospace;--accent:var(--terracotta);--accent-bg:var(--terracotta-bg);--accent-border:var(--terracotta-border);font:16px/155% var(--sans);letter-spacing:-.01em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background:#f2ece4}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);margin:0;padding:0}#root{text-align:left;border-inline:1px solid var(--border);background:var(--bg);width:100%;max-width:560px;min-height:100dvh;box-shadow:var(--shadow);flex-direction:column;margin:0 auto;display:flex;position:relative}h1,h2,h3,h4{font-family:var(--heading);color:var(--terracotta);text-transform:uppercase;letter-spacing:.04em;margin:0;font-weight:700}h1{font-size:1.6rem;line-height:1.25}h2{font-size:1.25rem;line-height:1.3}h3{font-size:1.05rem;line-height:1.35}p{margin:0}button{-webkit-tap-highlight-color:transparent;font-family:inherit}.divider-bar{background-color:var(--terracotta);border-radius:4px;width:100%;max-width:180px;height:4px;margin:14px 0}.divider-bar--center{margin-left:auto;margin-right:auto}.star-symbol{object-fit:contain;vertical-align:middle;-webkit-user-select:none;user-select:none;flex-shrink:0;width:1.4rem;height:1.4rem;display:inline-block}.app-header{z-index:20;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;background:var(--bg);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.app-header__brand{color:var(--terracotta);flex-shrink:1;align-items:center;gap:6px;min-width:0;text-decoration:none;display:flex}.app-header__title{font-family:var(--heading);color:var(--terracotta);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.75rem,3.2vw,.95rem);font-weight:700;overflow:hidden}.app-header__langs{flex-shrink:0;gap:3px;display:flex}.app-header__lang-btn{border:1px solid var(--border);background:var(--code-bg);color:var(--text-h);letter-spacing:.03em;cursor:pointer;border-radius:7px;justify-content:center;align-items:center;min-width:30px;min-height:32px;padding:4px 6px;font-size:.72rem;font-weight:700;transition:all .15s;display:inline-flex}.app-header__lang-btn:active{transform:scale(.93)}.app-header__lang-btn.is-active{background:var(--terracotta);color:#fff;border-color:var(--terracotta);box-shadow:0 2px 8px #7a432a40}.language-modal{z-index:100;-webkit-backdrop-filter:blur(8px);background:#2c252399;justify-content:center;align-items:flex-end;padding:16px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.language-modal__panel{background:var(--bg-card);color:var(--text-h);border:1px solid var(--border);padding:24px 20px calc(20px + env(safe-area-inset-bottom,0px));text-align:center;width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:24px;animation:.25s cubic-bezier(.16,1,.3,1) slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.language-modal__panel h2{color:var(--terracotta);margin-bottom:4px;font-size:1.15rem}.language-modal__grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px;display:grid}.language-modal__btn{border:1px solid var(--border);background:var(--bg);min-height:50px;color:var(--text-h);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:12px 14px;font-size:.95rem;font-weight:600;transition:all .15s;display:flex}.language-modal__btn:active{background:var(--terracotta-bg);border-color:var(--terracotta-border);transform:scale(.96)}.language-modal__iso{letter-spacing:.05em;background:var(--code-bg);color:var(--terracotta);border:1px solid var(--border);border-radius:6px;justify-content:center;align-items:center;padding:4px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.install-prompt__panel{max-width:380px}.install-prompt__icon{width:56px;height:56px;box-shadow:var(--shadow);border-radius:14px;margin-bottom:12px}.install-prompt__subtitle{color:var(--text-muted);margin-top:4px;font-size:.9rem;line-height:1.4}.install-prompt__steps{text-align:left;color:var(--text);margin:16px 0 4px;padding-left:20px;font-size:.9rem;line-height:1.6}.install-prompt__steps li{margin-bottom:4px}.install-prompt__actions{flex-direction:column;gap:8px;margin-top:18px;display:flex}.install-prompt__later{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px;font-size:.85rem;font-weight:600}.home{padding:20px 18px calc(95px + env(safe-area-inset-bottom,0px));text-align:left}.home__hero{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px;margin-bottom:24px;padding:20px 18px;position:relative;overflow:hidden}.home__hero:before{content:"";background:var(--terracotta);height:5px;position:absolute;top:0;left:0;right:0}.home__hero-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.star-symbol{vertical-align:middle;object-fit:contain;display:inline-block}.home__hero-star{filter:drop-shadow(0 2px 4px #7a432a26);flex-shrink:0;margin-top:2px}.home__hero-title-group h1{color:var(--terracotta);letter-spacing:.06em;font-size:1.55rem;line-height:1.2}.home__hero-motto{font-family:var(--heading);color:var(--terracotta-dark);margin-top:2px;font-size:1.05rem;font-style:italic;font-weight:500;line-height:1.3}.home__hero-subtitle{font-family:var(--heading);color:var(--terracotta-dark);letter-spacing:.05em;text-transform:uppercase;margin-top:4px;font-size:.85rem;font-weight:700}.home__bio{color:var(--text);border-top:1px solid var(--border);margin-top:14px;padding-top:14px;font-size:.92rem;line-height:1.6}.home__intro,.home__closing{margin-top:14px}.home__intro-text,.home__closing-text,.home__bio-text{color:var(--text);white-space:pre-line;font-size:.92rem;line-height:1.6}.home__credits{border-top:1px dashed var(--border);color:var(--text-muted);letter-spacing:.04em;flex-direction:column;gap:12px;margin-top:16px;padding-top:12px;font-size:.78rem;display:flex}.home__credits-row{text-transform:uppercase;align-items:center;gap:8px;display:flex}.home__credits-row>div{letter-spacing:0;font-size:.62rem;line-height:1.35}.home__credits-row--link{color:inherit;text-decoration:none}.home__credits-tce-desc{text-transform:none;margin-top:2px;display:inline-block}.home__credits-logo{object-fit:contain;flex-shrink:0}.home__credits-logo--blanser{width:28px;height:28px}.home__credits-logo--tce{width:auto;height:28px}.home__patronage{flex-direction:column;gap:8px;display:flex}.home__patronage-label{text-transform:uppercase}.home__patronage-logos{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.home__patronage-logos img{object-fit:contain;width:auto;height:36px}.home__section-title{color:var(--terracotta);align-items:center;gap:8px;margin-bottom:12px;font-size:1.15rem;display:flex}.home__bio .home__section-title{margin-top:0}.home__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.home__list-item{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;transition:all .15s;overflow:hidden;box-shadow:0 2px 6px #00000005}.home__list-item:active{border-color:var(--terracotta-border);background:var(--terracotta-bg);transform:scale(.98)}.home__list-link{color:var(--text-h);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.home__list-content{flex-direction:column;flex:1;display:flex}.home__list-title{color:var(--text-h);font-size:1rem;font-weight:600}.home__list-year,.artwork-card__year{opacity:.9;font-weight:400}.home__list-details{color:var(--text-muted);white-space:pre-line;margin-top:2px;font-size:.8rem}.home__list-arrow{color:var(--terracotta);font-size:1.2rem;font-weight:700}.back-link{background:var(--bg-card);min-height:44px;color:var(--terracotta);text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border);border-radius:10px;align-items:center;gap:6px;margin:16px 16px 0;padding:10px 16px;font-size:.88rem;font-weight:700;text-decoration:none;transition:transform .15s;display:inline-flex;box-shadow:0 2px 4px #00000008}.back-link:active{transform:scale(.95)}.artwork-card{padding:16px;padding-bottom:calc(95px + env(safe-area-inset-bottom,0px));text-align:left}.artwork-card__media-container{border:1px solid var(--border);width:100%;box-shadow:var(--shadow);background:radial-gradient(circle,#fff 25%,#f4ede3 100%);border-radius:20px;justify-content:center;align-items:center;min-height:280px;margin-bottom:18px;padding:20px 14px;display:flex;position:relative;overflow:hidden}.artwork-card__image{object-fit:contain;filter:drop-shadow(0 10px 20px #5e321e2e);width:100%;height:auto;max-height:380px;transition:transform .3s;display:block}.artwork-card__header{margin-bottom:14px}.artwork-card__title{color:var(--terracotta);margin-bottom:6px;font-size:1.4rem;line-height:1.25}.artwork-card__meta-group{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.artwork-card__meta{color:var(--text-h);background:var(--code-bg);white-space:pre-line;border:1px solid var(--border);border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:.84rem;font-weight:600;display:inline-flex}.artwork-card__description{color:var(--text);background:var(--bg-card);border:1px solid var(--border);white-space:pre-line;border-radius:14px;margin-top:14px;margin-bottom:20px;padding:16px;font-size:.98rem;line-height:1.65}.audio-player{background:var(--bg-card);border:1px solid var(--terracotta-border);box-shadow:var(--shadow);border-radius:16px;margin-top:16px;padding:16px;position:relative;overflow:hidden}.audio-player:before{content:"";background:var(--terracotta);width:4px;position:absolute;top:0;bottom:0;left:0}.audio-player__header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.audio-player__badge{background:var(--terracotta-bg);width:28px;height:28px;color:var(--terracotta);border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.audio-player__label{font-family:var(--heading);color:var(--terracotta);text-transform:uppercase;letter-spacing:.04em;font-size:.9rem;font-weight:700}.audio-player audio{border-radius:8px;width:100%;height:44px}.artwork-card__video-container{border:1px solid var(--border);background:#000;border-radius:14px;margin-top:20px;overflow:hidden}.artwork-card__video{width:100%;max-height:320px;display:block}.nfcbar{z-index:40;background:var(--bg);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);width:100%;max-width:560px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));text-align:center;margin:0 auto;position:fixed;inset:auto 0 0 50%;transform:translate(-50%)}.nfcbar__btn{border:1px solid var(--terracotta-dark);background:var(--terracotta);color:#fff;width:100%;max-width:100%;min-height:50px;font-family:var(--heading);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border-radius:14px;padding:12px 20px;font-size:.92rem;font-weight:700;transition:transform .15s,background-color .15s;box-shadow:0 4px 14px #7a432a4d}.nfcbar__btn:active{background:var(--terracotta-dark);transform:scale(.97)}.nfcbar__msg{color:var(--text-h);justify-content:center;align-items:center;gap:12px;min-height:48px;margin:0;font-size:.88rem;font-weight:600;display:flex}.nfcbar__icon{object-fit:contain;flex-shrink:0;width:54px;height:54px}.nfcbar__text{text-align:center}.nfcbar__icon--inline{vertical-align:-.4em;width:1.5em;height:1.5em;margin:0 2px}.nfcbar__msg[data-state=idle] .nfcbar__icon,.nfcbar__msg[data-state=scanning] .nfcbar__icon{animation:2s cubic-bezier(.4,0,.6,1) infinite nfc-pulse}@keyframes nfc-pulse{0%,to{opacity:.72;transform:scale(.94)}60%{opacity:1;transform:scale(1.04)}}@media (prefers-reduced-motion:reduce){.nfcbar__icon,.language-modal,.language-modal__panel{transition:none;animation:none}}
