/* Oolshak app pages (editor, account, share). Loaded only on noindex app routes. */
@font-face{font-family:"Lilita One";src:url(/assets/fonts/LilitaOne-Regular.woff2) format("woff2"),url(/assets/fonts/LilitaOne-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Righteous";src:url(/assets/fonts/Righteous-Regular.woff2) format("woff2"),url(/assets/fonts/Righteous-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Russo One";src:url(/assets/fonts/RussoOne-Regular.woff2) format("woff2"),url(/assets/fonts/RussoOne-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Abril Fatface";src:url(/assets/fonts/AbrilFatface-Regular.woff2) format("woff2"),url(/assets/fonts/AbrilFatface-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Playfair Display SC";src:url(/assets/fonts/PlayfairDisplaySC-Black.woff2) format("woff2"),url(/assets/fonts/PlayfairDisplaySC-Black.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Yeseva One";src:url(/assets/fonts/YesevaOne-Regular.woff2) format("woff2"),url(/assets/fonts/YesevaOne-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Anton";src:url(/assets/fonts/Anton-Regular.woff2) format("woff2"),url(/assets/fonts/Anton-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Paytone One";src:url(/assets/fonts/PaytoneOne-Regular.woff2) format("woff2"),url(/assets/fonts/PaytoneOne-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Creepster";src:url(/assets/fonts/Creepster-Regular.woff2) format("woff2"),url(/assets/fonts/Creepster-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Cherry Bomb One";src:url(/assets/fonts/CherryBombOne-Regular.woff2) format("woff2"),url(/assets/fonts/CherryBombOne-Regular.ttf) format("truetype");font-display:swap}

.app .site-footer{margin-top:24px}
.app-editor .hdr-row2{display:none}
.linkish{background:none;border:0;padding:0;color:var(--violet);text-decoration:underline;text-underline-offset:.18em;font:inherit;cursor:pointer}
.btn-sm{min-height:40px;padding:8px 14px;font-size:.92rem}
.ok{color:#0d7a62;font-weight:700}
.fld-msg{font-size:.92rem;color:var(--ink-2);margin:6px 0 0}
.fld-msg.err,.ed-status.err{color:var(--pink-d)}

/* Top bar */
.ed-top{position:sticky;top:0;z-index:20;background:rgba(255,250,243,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.ed-top-in{display:flex;align-items:center;gap:10px;min-height:58px}
.ed-back{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;font-size:1.5rem;line-height:1;flex:none}
[dir=rtl] .ed-back{transform:scaleX(-1)}
.ed-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.ed-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1rem}
.ed-status{font-size:.8rem;color:var(--muted);min-height:1em}
.ed-dl{min-height:44px;padding:10px 16px;font-size:.95rem;flex:none}
@media(max-width:420px){.ed-dl{padding:10px 12px;font-size:.88rem}}
.ed-preview-tools{display:none}
@media(max-width:899px){
  .ed-preview-tools{display:flex;justify-content:flex-end;padding-bottom:8px}
  .ed-preview-jump{min-height:44px;padding:8px 14px;font-size:.95rem;max-width:100%}
}

/* Steps */
.ed-steps{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-block:10px}
.ed-steps::-webkit-scrollbar{display:none}
.step{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px 7px 7px;font:650 .9rem var(--font);color:var(--ink-2);cursor:pointer;min-height:40px}
.step-n{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--bg-2);font-size:.8rem}
.step.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.step.on .step-n{background:var(--yellow);color:var(--ink)}

/* Layout */
.ed-main{display:flex;flex-direction:column-reverse;gap:18px;padding-bottom:30px}
/* On phones, start with the magazine fields; the live preview follows them. */
@media(max-width:899px){.ed[data-product="magazine"] .ed-main{flex-direction:column}}
.ed-preview{display:flex;flex-direction:column;align-items:center;gap:10px}
.ed-stage{width:min(62vw,300px);display:flex;justify-content:center}
.ed-strip{display:flex;gap:6px;overflow-x:auto;max-width:100%;padding:2px 2px 6px}
.ed-note{font-size:.82rem;color:var(--muted);text-align:center;margin:0;max-width:34em}
@media(min-width:900px){
  .ed-main{display:grid;grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:32px}
  .ed-preview{position:sticky;top:76px}
  .ed-stage{width:440px}
}
@media(min-width:1100px){.ed-main{grid-template-columns:minmax(0,1fr) 520px}.ed-stage{width:520px}}
.ed-form{min-width:0}
.ed-h{font-size:1.6rem;margin:4px 0 14px}

/* Fields */
.fld{margin:0 0 16px;border:0;padding:0;min-width:0}
.fld>label,.fld legend,.fld-label{display:block;font-weight:700;margin-bottom:6px;font-size:.98rem}
.fld input[type=text],.fld textarea,.fld-row input,.opt-row input{width:100%;font:16px/1.4 var(--font);padding:12px 14px;border:1.5px solid #d9d0c2;border-radius:12px;background:#fff;color:var(--ink);min-height:48px}
.fld textarea{resize:vertical;min-height:96px}
.fld input:focus,.fld textarea:focus{border-color:var(--violet);outline:none;box-shadow:0 0 0 3px rgba(108,92,231,.18)}
.fld-help{font-size:.88rem;color:var(--muted);margin:6px 0 0}
.fld-list{display:grid;gap:8px}
.fld-row{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}
.fld-num{font-size:.85rem;font-weight:700;color:var(--muted);min-width:2.2em}
.fld-groups{display:grid;gap:12px;margin-bottom:16px}
.fld-group{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 14px 4px;display:flex;flex-wrap:wrap;gap:0 12px}
.fld-group .fld{flex:1 1 100%;margin-bottom:10px}
.fld-group .fld-s{flex:0 0 7.5em}
.fld-group .fld-m{flex:1 1 9em}
.fld-group .fld-s+.fld-l{flex:1 1 12em}
.fld-badge{position:absolute;inset-inline-end:10px;top:10px;font-size:.75rem;font-weight:800;color:var(--muted)}
.fld-opts{display:grid;gap:8px;flex:1 1 100%;margin-bottom:10px}
.opt-l{font-size:.85rem;font-weight:700;color:var(--muted);display:block;margin-bottom:4px}
.opt-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.opt-c{display:inline-flex;align-items:center;gap:4px;font-weight:800;color:#0d7a62;cursor:pointer;min-height:44px;padding:0 6px}
.opt-c input{width:22px;height:22px;accent-color:#0d7a62}
.fld-check{display:flex;gap:10px;align-items:flex-start}
.fld-check input{width:22px;height:22px;margin-top:2px;accent-color:var(--violet);flex:none}
.fld-check label{font-weight:600;margin:0}
.ideas-btn{margin-top:8px;background:#fff7d6;border:1px solid #f5e3a1;border-radius:999px;padding:7px 12px;font:650 .88rem var(--font);color:#7a5a00;cursor:pointer;min-height:38px}
.ideas-pop{margin-top:8px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh);padding:10px;display:grid;gap:4px;max-height:300px;overflow:auto}
.ideas-title{margin:0 0 4px;font-size:.82rem;color:var(--muted);font-weight:700}
.idea{text-align:start;background:var(--bg);border:0;border-radius:10px;padding:10px 12px;font:15px/1.35 var(--font);color:var(--ink);cursor:pointer}
.idea:hover,.idea:focus{background:#ffe9b8}

/* Photos */
.photo-fld .fld-label{margin-bottom:6px}
.ph-tile{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px dashed #d9d0c2;border-radius:14px;padding:10px;min-height:76px}
.ph-tile.has{border-style:solid}
.ph-tile img{width:64px;height:64px;object-fit:cover;border-radius:10px;flex:none}
.ph-actions{display:flex;flex-wrap:wrap;gap:8px}
.ph-actions label{margin:0}
.fld-gallery{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-bottom:16px}
.gal-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}
.gal-item .fld{margin-bottom:8px}

/* Theme + segmented controls */
.theme-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.theme-opt{display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:#fff;border:2px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;font:inherit;color:var(--ink);text-align:start;min-height:64px}
.theme-opt.on{border-color:var(--ink);box-shadow:0 0 0 3px rgba(29,27,58,.12)}
/* Public magazine cover samples stay compact beside the existing style names. */
.theme-pick-covers .theme-opt{min-width:0}
.theme-pick-covers .theme-copy{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;max-width:100%;overflow-wrap:anywhere}
.theme-opt-cover{flex-direction:row;align-items:center;gap:8px;padding:8px;min-height:72px}
.theme-cover{display:block;flex:0 0 36px;width:36px;height:51px;object-fit:contain;border-radius:3px;background:#fff}
.theme-opt-cover strong{font-size:.9rem;line-height:1.2}
.theme-opt-cover .swatches{gap:4px;margin:0;max-width:100%}
.theme-opt-cover .swatches span{flex:0 0 12px;width:12px;height:12px;border-width:1px}
.theme-pick-covers .theme-opt:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg-opt{flex:1 1 auto;border:2px solid var(--line);background:#fff;border-radius:12px;padding:10px 14px;font:650 .95rem var(--font);color:var(--ink);cursor:pointer;min-height:46px}
.seg-opt.on{border-color:var(--ink);background:var(--ink);color:#fff}

.ed-nav{display:flex;justify-content:space-between;gap:10px;margin:22px 0 10px}
.ed-nav .btn:only-child{margin-inline-start:auto}
.ed-tools{display:flex;flex-wrap:wrap;gap:16px;font-size:.92rem;margin-top:8px}
.ed-final{margin:14px 0 22px}

/* Rendered pages */
.pg{position:relative;overflow:hidden;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08),0 10px 30px rgba(29,27,58,.14);border-radius:3px;flex:none;direction:ltr;unicode-bidi:isolate}
.pg>*{position:absolute;box-sizing:border-box}
.pg-img,.pg-photo{object-fit:cover;display:block}
.pg-img{object-fit:fill}
.pg-photo{object-position:50% 42%}
.pg-empty{display:flex;align-items:center;justify-content:center;background:#f3eee6}
.pg-text{display:flex;flex-direction:column;overflow:hidden;white-space:pre-line;overflow-wrap:break-word;word-break:normal}
.pg-text .pg-in{unicode-bidi:plaintext}
.ed-page-btn{display:block;border:0;padding:0;background:none;cursor:zoom-in;border-radius:3px}
.ed-thumb{border:2px solid transparent;border-radius:6px;padding:2px;background:none;cursor:pointer;flex:none}
.ed-thumb.on{border-color:var(--pink)}
.ed-thumb .pg{box-shadow:0 1px 3px rgba(0,0,0,.15)}
.ed-all{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:12px}
@media(min-width:760px){.ed-all{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ed-all figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}
.ed-all figcaption{font-size:.85rem;color:var(--muted)}

/* Lightbox + modal */
.lb{position:fixed;inset:0;z-index:60;background:rgba(18,16,40,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:12px}
.lb-bar{display:flex;align-items:center;gap:8px;color:#fff}
.lb-label{min-width:7em;text-align:center;font-weight:700}
.lb-btn{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:1.6rem;cursor:pointer;line-height:1}
.lb-stage{display:flex;justify-content:center}
.modal{position:fixed;inset:0;z-index:50;background:rgba(18,16,40,.55);display:flex;align-items:flex-end;justify-content:center;padding:0}
@media(min-width:640px){.modal{align-items:center;padding:20px}}
.modal-card{position:relative;background:var(--bg);width:min(560px,100%);max-height:92vh;overflow:auto;border-radius:22px 22px 0 0;padding:26px 20px calc(22px + env(safe-area-inset-bottom))}
@media(min-width:640px){.modal-card{border-radius:22px;padding:30px}}
.modal-x{position:absolute;top:10px;inset-inline-end:10px;width:40px;height:40px;border-radius:50%;border:0;background:#fff;font-size:1.5rem;cursor:pointer}
.modal-card h2{font-size:1.5rem;padding-inline-end:36px}
.gsi-btn{min-height:44px;margin:14px 0}
.busy::before{content:"";display:inline-block;width:18px;height:18px;border:3px solid var(--line);border-top-color:var(--pink);border-radius:50%;margin-inline-end:10px;vertical-align:-3px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.share-box{margin-top:10px}
.share-panel{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}
.share-note{font-size:.92rem;line-height:1.5;margin:0 0 12px;color:var(--ink-2)}
.share-panel [hidden]{display:none!important}
.share-actions{margin:0 0 12px;gap:8px}
.share-actions .btn{min-height:44px;flex:1 1 auto}
.share-url{width:100%;font:16px var(--font);padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.share-stop{min-height:44px;margin-top:8px}
.share-recreate{text-align:center}
.share-template{max-width:600px;margin:0 auto}
.share-template img{width:100%;height:auto;border-radius:16px}

/* Account + share */
.proj-list{list-style:none;padding:0;display:grid;gap:12px;margin:16px 0 26px}
.proj{display:flex;flex-direction:column;gap:6px}
.proj .btn-row{margin:6px 0 0}
.signin-box{min-height:50px;margin:16px 0}
.sheet-grid{display:grid;gap:20px;justify-items:center}
@media(min-width:900px){.sheet-grid{grid-template-columns:1fr 1fr}}
.sheet-grid figure{margin:0}

.theme-opt.busy{opacity:.55;cursor:progress}
.pg-loading{display:flex;align-items:center;justify-content:center;aspect-ratio:210/297;background:#f3eee6;color:#7a6a86;font-size:.9rem;border-radius:6px}
.fld select.sel{width:100%;font:16px/1.4 var(--font);padding:12px 40px 12px 14px;border:1.5px solid #d9d0c2;border-radius:12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%232a1f3d' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;color:var(--ink);min-height:48px;appearance:none;-webkit-appearance:none}
.fld select.sel:focus{border-color:var(--violet);outline:none;box-shadow:0 0 0 3px rgba(108,92,231,.18)}

/* Optional email-code sign-in, shared by the editor and account. */
.email-auth{width:100%;max-width:420px;min-width:0}
.email-auth [hidden]{display:none!important}
.email-auth-toggle,.email-auth-submit{width:100%;white-space:normal;min-height:48px}
.email-auth-form{margin:14px 0 0;text-align:start}
.email-auth .fld input{box-sizing:border-box;width:100%;min-width:0;font:16px/1.4 var(--font);padding:12px 14px;border:1.5px solid #d9d0c2;border-radius:12px;background:#fff;color:var(--ink);min-height:48px}
.email-auth .fld input:focus{border-color:var(--violet);outline:none;box-shadow:0 0 0 3px rgba(108,92,231,.18)}
.email-auth .fld input[aria-invalid=true]{border-color:var(--pink-d)}
.email-auth .fld .email-auth-code{font-size:1.5rem;letter-spacing:.28em;text-align:center;font-variant-numeric:tabular-nums}
.email-auth-actions{display:flex;gap:8px 20px;flex-wrap:wrap;margin-top:10px}
.email-auth-actions .linkish{min-height:44px;text-align:start;white-space:normal}
.email-auth button:disabled{cursor:default;opacity:.6}
.email-auth-method-note{margin:0 0 14px}
.email-auth-sent{margin:0 0 14px;overflow-wrap:anywhere}
.email-auth-error{margin-top:12px;overflow-wrap:anywhere}
.email-auth-divider{max-width:420px;display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:.9rem}
.email-auth-divider:before,.email-auth-divider:after{content:"";height:1px;background:var(--line);flex:1}
.signin-cancel{min-height:44px;margin-top:10px}

/* English friend-note pilot: organiser controls and a separate contribution-only page. */
.contribution-panel{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;display:grid;gap:12px}
.contribution-panel legend{padding:0 6px;font-size:1.05rem}
.contribution-intro{margin:0;line-height:1.5;font-size:.94rem}
.contribution-panel .btn,.contribution-note .linkish{min-height:44px;white-space:normal}
.contribution-panel .linkish{text-align:start;min-height:44px}
.contribution-panel [hidden],.contribution-page [hidden]{display:none!important}
.contribution-notes{display:grid;gap:12px;min-width:0}
.contribution-note{border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:10px;min-width:0}
.contribution-note h3,.contribution-note p{margin:0}
.contribution-note-text,.contribution-slot-current{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.contribution-slot-current{font-size:.85rem;background:var(--bg);padding:10px;border-radius:8px}
.contribution-note label{font-weight:700}
.contribution-note select{width:100%;min-height:48px;font:16px/1.4 var(--font);background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--ink)}
.contribution-manual{margin:16px 0}
.contribution-manual summary{min-height:44px;cursor:pointer;font-weight:650;padding:8px 0}
.contribution-manual[open] .fld{margin-top:12px}
.contribution-conflict{border:2px solid #a94223;background:#fff1e8;border-radius:12px;padding:14px;margin-bottom:16px;line-height:1.5}
.contribution-conflict p{margin:0 0 10px}
.contribution-page{--font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ink:#29213b;--ink-2:#494151;--muted:#635c6c;--line:#e6dccc;--bg:#fffaf3;--violet:#6550bb;--pink-d:#aa344d;box-sizing:border-box;margin:0;padding:24px 14px 40px;background:var(--bg);color:var(--ink);font:16px/1.55 var(--font)}
.contribution-page *{box-sizing:border-box}
.contribution-card{width:min(100%,580px);margin:0 auto;padding:24px 20px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 24px rgba(40,25,60,.06)}
.contribution-brand{font-size:.83rem;letter-spacing:.02em;font-weight:750;color:var(--violet);margin:0 0 16px}
.contribution-page h1{font-size:clamp(1.65rem,6vw,2.2rem);line-height:1.15;margin:0 0 16px;letter-spacing:-.025em}
.contribution-page h2{font-size:1.5rem;line-height:1.2;margin:0 0 16px}
.contribution-lead{margin:0 0 12px}
.contribution-small{font-size:.86rem;line-height:1.5;color:var(--muted);margin:8px 0 16px}
.contribution-page form{margin-top:24px}
.contribution-page .fld input[type=text],.contribution-page .fld textarea{font-family:var(--font);max-width:100%}
.contribution-page .fld-check label{font-size:.9rem;line-height:1.45}
.contribution-page .btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:8px;border:1px solid var(--line);border-radius:12px;padding:12px 16px;font:700 1rem/1.35 var(--font);min-height:48px;width:100%;white-space:normal;cursor:pointer}
.contribution-page .btn-primary{background:var(--violet);color:#fff;border-color:var(--violet)}
.contribution-page .btn-ghost{color:var(--ink);background:#fffaf3}
.contribution-page button:disabled{opacity:.65;cursor:wait}
.contribution-page :focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.contribution-page [aria-invalid=true]{border-color:var(--pink-d)}
.contribution-privacy{padding:12px 14px;border-radius:12px;background:#f7f3fc;font-size:.83rem;line-height:1.5;margin-bottom:18px;color:var(--ink-2)}
.contribution-privacy p{margin:0 0 8px}
.contribution-privacy p:last-child{margin-bottom:0}
.contribution-page .fld-msg.err{margin-bottom:14px}
@media(max-width:360px){.contribution-card{padding:20px 14px}.contribution-page{padding:14px 10px 30px}}

/* A personal birthday cover first; selected settings and every editor step remain available. */
.ed-cover-help{margin-bottom:14px}
.ed-cover-first{margin-bottom:14px;max-width:100%}
.ed-more-options{margin:0 0 18px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 14px}
.ed-more-options>summary{min-height:48px;padding:13px 0;font-weight:700;cursor:pointer;overflow-wrap:anywhere}
.ed-more-options>summary:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.ed-more-options>.fld-help{margin:0 0 14px}
.ed-more-options>.fld:last-child{margin-bottom:14px}
.gift-check-list{list-style:none;padding:0;margin:14px 0;display:grid;gap:8px}
.gift-check-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px;overflow-wrap:anywhere}
.gift-check-list .btn{flex:none;min-height:44px}
.signin-retry{margin-top:10px}
@media(max-width:380px){.gift-check-list li{align-items:flex-start;flex-direction:column}}
