:root{--bg:#0c0d0f;--panel:#17191d;--ink:#f4f0e8;--muted:#aaa7a0;--line:#34363a;--gold:#c7a76a;--blue:#9bc8e3;--green:#91c69b;--radius:22px}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{overflow:hidden}
a{color:inherit}
button,a{outline-offset:4px}
:focus-visible{outline:3px solid var(--blue)}
.skip-link{position:fixed;left:16px;top:-80px;z-index:30;background:#fff;color:#000;padding:12px}.skip-link:focus{top:16px}
.deck{height:100dvh}
.slide{display:none;width:100%;height:100%;min-height:0;overflow:auto;padding:clamp(32px,5vw,72px) clamp(24px,6vw,92px) 88px;background:radial-gradient(circle at 90% 0,#24211a 0,transparent 35%),var(--bg)}
.slide.is-active{display:flex;flex-direction:column}
.slide-title{display:none;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:7vw;align-items:center}.slide-title.is-active{display:grid}
.kicker,.eyebrow,.label{margin:0 0 14px;color:var(--gold);font-size:clamp(14px,1.3vw,18px);font-weight:750;letter-spacing:.12em;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(54px,7vw,108px);line-height:.94;letter-spacing:-.055em;margin-bottom:32px}h1 span{color:var(--gold)}
h2{font-family:Georgia,serif;font-size:clamp(38px,4.7vw,72px);line-height:1.03;letter-spacing:-.035em;margin-bottom:0}h3{font-size:clamp(20px,1.8vw,28px);margin-bottom:10px}
p{font-size:clamp(18px,1.5vw,24px);line-height:1.45;color:var(--muted)}
.lede{font-size:clamp(20px,1.9vw,30px);max-width:850px}.status-row{display:flex;flex-wrap:wrap;gap:10px}.status-row span{border:1px solid var(--line);border-radius:999px;padding:10px 16px;color:#ddd}
.title-panel{padding:34px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff08}.title-panel strong{display:block;font-size:24px}.title-panel p{font-size:18px}
.slide-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:clamp(24px,3.5vh,44px)}.slide-head.compact h2{font-size:clamp(34px,4vw,58px)}.url{font-size:16px;color:var(--blue);overflow-wrap:anywhere}
.change-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;flex:1}.change-grid article,.tech-list article,.progress article{border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,2.2vw,34px);background:#ffffff05}.change-grid b{color:var(--gold);font-size:16px}.change-grid p{font-size:18px}
.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;min-height:0;flex:1}.comparison figure{min-width:0;margin:0;display:flex;flex-direction:column}.comparison figcaption{display:flex;justify-content:space-between;gap:12px;font-size:16px;margin-bottom:10px}.comparison figcaption b{font-size:22px;color:var(--gold)}.comparison figcaption span{color:var(--muted)}
.shot{min-height:240px;flex:1;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:#141518}.shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.shot.placeholder{display:grid;place-items:center;padding:28px;text-align:center;background:repeating-linear-gradient(135deg,#17181b,#17181b 12px,#1c1d20 12px,#1c1d20 24px)}.shot.placeholder p{font-size:18px}
.slide-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:16px}.slide-meta p,.slide-meta time{font-size:16px;line-height:1.4;color:var(--muted);margin:0}.slide-meta b{color:var(--ink)}
.nav-before-after{display:grid;grid-template-columns:1fr auto 1fr;gap:3vw;align-items:center;flex:1}.nav-before-after article{border:1px solid var(--line);border-radius:var(--radius);padding:34px}.nav-mock{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.nav-mock span,.nav-mock strong{border-radius:999px;background:var(--gold);color:#15120d;padding:12px 18px}.nav-mock.muted span{text-decoration:line-through;background:#3c3c3c;color:#bbb}.arrow{font-size:54px;color:var(--gold)}
.taxonomy{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;flex:1}.taxonomy>div{border:1px solid var(--line);border-radius:var(--radius);padding:34px}.taxonomy-before{display:flex;flex-direction:column;gap:14px}.taxonomy-before span{padding:18px;border-left:3px solid #8b5e5e;background:#ffffff05;font-size:20px}.taxonomy ol{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0;padding:0;counter-reset:item;list-style:none}.taxonomy li{padding:20px;border-radius:14px;background:#ffffff08;font-size:clamp(18px,1.5vw,24px)}.taxonomy li::before{counter-increment:item;content:"0" counter(item);color:var(--gold);margin-right:12px;font-size:14px}
.tech-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;flex:1}.tech-list article{display:flex;gap:20px;align-items:flex-start}.tech-list article>span{display:grid;place-items:center;min-width:42px;height:42px;border-radius:50%;background:#243f2a;color:var(--green);font-size:24px}.tech-list p{font-size:18px}
.progress{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch;flex:1}.progress .label{font-size:14px}.label.done{color:var(--green)}.label.review{color:var(--blue)}.label.waiting{color:#e5b882}
.approval{max-width:1050px;margin:auto}.approval ol{list-style:none;padding:0;margin:42px 0;display:grid;gap:14px}.approval li{display:flex;gap:22px;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)}.approval li>span{color:var(--gold);font-size:14px}.approval li b{font-size:24px}.approval li p{font-size:18px;margin:4px 0}.closing{font-size:clamp(20px,2vw,30px);color:var(--ink)}
.controls{position:fixed;z-index:20;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:8px 10px;background:#161719ed;border:1px solid var(--line);border-radius:999px;box-shadow:0 10px 35px #0008}.controls button{border:0;border-radius:999px;background:#292b2f;color:#fff;min-height:42px;padding:0 16px;font-weight:700;cursor:pointer}.controls button:first-child,.controls button:nth-of-type(2){font-size:22px;min-width:42px;padding:0}.controls span{font-variant-numeric:tabular-nums}.controls kbd{font:inherit;font-size:11px;color:#aaa;margin-left:4px}
.notes{position:fixed;z-index:25;right:0;top:0;width:min(520px,100%);height:100dvh;visibility:hidden;pointer-events:none;transform:translateX(102%);transition:transform .2s ease,visibility 0s .2s;background:#111214f8;border-left:1px solid var(--line);box-shadow:-20px 0 50px #0009;overflow:hidden}.notes.is-open{visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}.notes header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}.notes button{border:0;background:transparent;color:#fff;font-size:32px;cursor:pointer}.notes [data-notes-content]{height:calc(100% - 74px);overflow:auto;overscroll-behavior:contain;padding:24px}.note-item{margin-bottom:20px}.note-item b{display:block;color:var(--gold);margin-bottom:5px}.note-item p{font-size:17px;margin:0}
@media(max-width:900px){body{overflow:auto}.deck{height:auto;min-height:100dvh}.slide{min-height:100dvh;height:auto;padding:32px 24px 96px}.slide-title.is-active{display:flex}.slide-title{gap:26px}.title-panel{padding:24px}.change-grid,.progress{grid-template-columns:1fr 1fr}.comparison-grid{grid-template-columns:1fr}.shot{height:min(52vw,390px);flex:none}.slide-meta{grid-template-columns:1fr}.nav-before-after{grid-template-columns:1fr}.arrow{transform:rotate(90deg);text-align:center}.taxonomy{grid-template-columns:1fr}.tech-list{grid-template-columns:1fr}.controls{bottom:10px;width:max-content;max-width:calc(100% - 16px)}}
@media(max-width:560px){h1{font-size:48px}.slide-head{display:block}.slide-head .url{display:block;margin-top:12px}.change-grid,.progress{grid-template-columns:1fr}.taxonomy ol{grid-template-columns:1fr}.comparison figcaption{display:block}.comparison figcaption span{display:block;margin-top:4px}.shot{height:300px}.controls{gap:5px}.controls button{padding:0 10px}.controls [data-notes]{font-size:0}.controls [data-notes]::before{content:"Jegyzet";font-size:13px}.controls kbd{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
