:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter",sans-serif;color-scheme:light;--bg:#f4f3f0;--panel:#ffffffd8;--solid:#fff;--ink:#1e2223;--muted:#858987;--edge:#d7dbda99;--glass:#ffffffa3;--accent:#587b70;--accent-soft:#e7efea;--nav:#ffffffe0;--shadow:0 14px 38px #25302b13;--hero:linear-gradient(145deg,#dbe4df,#efefe9);--bar:#d5d9d5}html[data-theme="dark"]{color-scheme:dark;--bg:#101514;--panel:#222a27d9;--solid:#212927;--ink:#f3f5f2;--muted:#a2aaa5;--edge:#4a58514f;--glass:#2c3633b5;--accent:#a5d0b4;--accent-soft:#34453c;--nav:#27312de0;--shadow:0 18px 38px #0005;--hero:linear-gradient(145deg,#2e4940,#192420);--bar:#35463c}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}body{font-size:15px;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0}input,textarea,select{background:var(--solid);border:1px solid var(--edge);border-radius:13px;padding:13px 12px;min-width:0;outline:none;width:100%}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{min-height:88px;resize:vertical}h1,h2,h3,p{margin:0}h1{font-size:33px;letter-spacing:-1.4px;line-height:1.06;font-weight:750}h2{font-size:22px;letter-spacing:-.65px}h3{font-size:16px;letter-spacing:-.2px}.app{max-width:550px;min-height:100dvh;margin:auto;padding:calc(env(safe-area-inset-top) + 22px) 18px calc(115px + env(safe-area-inset-bottom));position:relative}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.brand{font-size:15px;font-weight:800;letter-spacing:-.5px}.brand span{color:var(--accent)}.avatar{width:42px;height:42px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:750;border:1px solid var(--edge)}.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-weight:750;color:var(--muted)}.section{margin-top:27px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:10px}.section-title button{font-size:12px;background:none;color:var(--accent);font-weight:700}.card{background:var(--panel);border:1px solid var(--edge);border-radius:23px;padding:18px;box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.hero{background:var(--hero);padding:23px;min-height:210px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.hero:after{content:'✦';position:absolute;right:-13px;top:-43px;font-size:225px;transform:rotate(-16deg);opacity:.12}.hero>*{position:relative;z-index:1}.hero h2{font-size:27px;max-width:290px;line-height:1.15}.hero p{max-width:280px;line-height:1.45}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-weight:720;padding:6px 10px;font-size:11px;width:max-content}.btn{padding:12px 15px;border-radius:14px;background:var(--ink);color:var(--bg);font-weight:720;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:transform .2s,opacity .2s}.btn:active,.icon-btn:active{transform:scale(.95)}.btn.secondary{background:var(--accent-soft);color:var(--accent)}.btn.ghost{background:var(--panel);color:var(--ink);border:1px solid var(--edge)}.btn.warn{background:#b74f48;color:white}.btn.sm{font-size:12px;padding:9px 11px;border-radius:12px}.btn.block{width:100%}.row{display:flex;align-items:center;gap:10px}.space{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.metric{padding:16px}.metric strong{display:block;font-size:28px;letter-spacing:-1px;margin:5px 0}.banner{display:flex;align-items:center;gap:12px;justify-content:space-between}.progress{height:7px;border-radius:100px;background:var(--bar);overflow:hidden;margin:10px 0}.progress>span{height:100%;display:block;background:var(--accent);border-radius:100px;transition:width .35s}.list{display:flex;flex-direction:column;gap:10px}.film-row{display:flex;align-items:center;gap:13px;padding:10px;border-radius:18px;background:var(--panel);border:1px solid var(--edge);width:100%;text-align:left}.poster{width:60px;height:83px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;color:white;text-align:center;padding:8px;font-size:11px;font-weight:800;line-height:1.2;letter-spacing:-.25px}.poster:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent,#0005);pointer-events:none}.poster span{position:relative;z-index:1;text-shadow:0 1px 8px #0004}.film-info{flex:1;min-width:0}.film-info h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px}.film-info p{font-size:12px;color:var(--muted);margin-top:4px}.score{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.score strong{font-size:17px}.score small{font-size:10px;color:var(--muted)}.nav{position:fixed;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(calc(100% - 28px),520px);border-radius:25px;padding:8px 5px;display:grid;grid-template-columns:repeat(5,1fr);background:var(--nav);border:1px solid var(--edge);box-shadow:0 8px 32px #0002;backdrop-filter:blur(34px) saturate(160%);-webkit-backdrop-filter:blur(34px) saturate(160%);z-index:20}.nav button{background:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 1px;border-radius:18px;color:var(--muted);font-size:10px;font-weight:650}.nav button.active{background:var(--accent-soft);color:var(--accent)}.nav svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.toolbar{display:flex;gap:8px;align-items:center;margin:17px 0}.search{flex:1}.tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:3px 0}.tabs button{padding:9px 12px;border-radius:14px;border:1px solid var(--edge);white-space:nowrap;background:var(--panel);font-size:12px}.tabs button.active{background:var(--ink);color:var(--bg);border-color:transparent}.icon-btn{background:var(--panel);border:1px solid var(--edge);width:41px;height:41px;border-radius:15px;font-size:19px}.sheetback{position:fixed;inset:0;background:#05090794;z-index:30;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease}.sheet{width:min(100%,550px);max-height:92dvh;overflow-y:auto;background:var(--bg);border:1px solid var(--edge);border-radius:28px 28px 0 0;padding:17px 18px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -10px 50px #0002;animation:rise .26s cubic-bezier(.2,.8,.25,1)}.sheet .handle{background:var(--bar);width:37px;height:4px;border-radius:9px;margin:-7px auto 18px}.sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:18px}.sheet-header .icon-btn{flex:none}.formline{display:flex;flex-direction:column;gap:7px}.formline label{font-size:12px;font-weight:720}.two-buttons{display:flex;gap:9px;flex-wrap:wrap}.two-buttons .btn{flex:1}.slider{width:100%;accent-color:var(--accent);padding:0;height:28px}.criterion{display:flex;flex-direction:column;gap:2px;margin:15px 0}.criterion .row{justify-content:space-between}.emoji-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.emoji-choice{border:1px solid var(--edge);border-radius:15px;display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--panel);padding:11px 2px}.emoji-choice span{font-size:25px}.emoji-choice small{text-align:center;font-size:9px;color:var(--muted)}.emoji-choice.active{border:2px solid var(--accent);background:var(--accent-soft)}.rating-big{font-size:43px;letter-spacing:-1.5px;font-weight:780}.divider{height:1px;background:var(--edge);margin:15px 0}.detail-hero{display:flex;gap:18px;align-items:center;margin-bottom:20px}.detail-hero .poster{width:115px;height:165px;font-size:16px;border-radius:16px}.detail-hero h2{font-size:26px}.details-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.details-metrics .card{text-align:center;padding:13px}.details-metrics strong{font-size:25px;display:block}.award{font-size:22px}.shelf-card{min-height:135px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.shelf-card:after{content:'✳';font-size:130px;position:absolute;right:-20px;bottom:-45px;color:var(--accent);opacity:.1}.shelf-card>*{z-index:1}.profile-select{display:flex;flex-direction:column;gap:12px;margin:28px 0}.profile-pick{display:flex;align-items:center;justify-content:space-between;padding:20px;border:1px solid var(--edge);border-radius:23px;background:var(--panel);font-size:20px;font-weight:750}.intro{min-height:100dvh;padding-top:calc(env(safe-area-inset-top) + 75px);max-width:450px}.intro h1{font-size:52px}.empty{padding:40px 20px;text-align:center;color:var(--muted);background:var(--panel);border-radius:20px;border:1px dashed var(--edge);line-height:1.6}.empty strong{display:block;color:var(--ink);margin-bottom:6px}.tag{font-size:11px;padding:5px 8px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:inline-block}.checkline{display:flex;align-items:center;gap:10px;border:1px solid var(--edge);padding:10px;border-radius:12px}.checkline input{width:18px;height:18px;accent-color:var(--accent)}#toast{position:fixed;z-index:70;left:50%;transform:translateX(-50%);bottom:105px;padding:12px 18px;background:var(--ink);color:var(--bg);border-radius:99px;max-width:90%;font-size:13px;font-weight:650;opacity:0;transition:opacity .25s;pointer-events:none;text-align:center}#toast.show{opacity:1}@keyframes fade{from{opacity:0}}@keyframes rise{from{transform:translateY(18px);opacity:.5}}@media(prefers-reduced-motion:reduce){*,*:after,*:before{animation:none!important;transition:none!important}}@media(min-width:720px){.app{border-left:1px solid var(--edge);border-right:1px solid var(--edge)}}
/* TULYA RATE — ultraviolet edition, iOS-inspired materials */
:root{--bg:#faf9ff;--panel:#ffffffdb;--solid:#fff;--ink:#17132c;--muted:#77718e;--edge:#dcd6f255;--glass:#ffffffbd;--accent:#7044df;--accent-soft:#f0eafd;--nav:#fffffff0;--shadow:0 16px 44px #3320640e;--hero:linear-gradient(135deg,#251647,#7549dc 58%,#a971ef);--bar:#e7e0f6;--canvas-glow:radial-gradient(ellipse 580px 320px at 15% -8%,#e8dafa88,transparent 80%),radial-gradient(ellipse 400px 350px at 100% 28%,#e7e2ff75,transparent 90%);--button-ink:#fff}
html[data-theme="dark"]{--bg:#090d24;--panel:#141c3ad9;--solid:#1c2444;--ink:#f6f5ff;--muted:#a9a6c6;--edge:#aaa0f52d;--glass:#1d2553b3;--accent:#b7a0ff;--accent-soft:#5d43b542;--nav:#171d3adf;--shadow:0 16px 46px #0103158c;--hero:linear-gradient(133deg,#16163f 8%,#422080 65%,#7b48d4);--bar:#373454;--canvas-glow:radial-gradient(ellipse 630px 430px at 12% -2%,#36277380,transparent 77%),radial-gradient(ellipse 420px 430px at 112% 47%,#261b6355,transparent 88%);--button-ink:#100c29}
html{background:var(--bg);scroll-behavior:smooth}body{background:var(--canvas-glow),var(--bg);background-attachment:fixed;font-size:15px;letter-spacing:-.12px}button{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ad87ff70;outline-offset:2px}button:active{transform:scale(.975)}.app{padding-top:calc(env(safe-area-inset-top) + 23px);padding-inline:20px}.top{margin-bottom:28px}.brand{letter-spacing:.15px;font-weight:850;font-size:15px}.brand>span:first-child{color:var(--accent)}.avatar{width:44px;height:44px;border:1px solid #b79bff55;background:linear-gradient(140deg,#7a51e9,#4e37ad);color:#fff;box-shadow:0 8px 25px #7248c038}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:2px}.section{margin-top:29px}h1{font-size:38px;letter-spacing:-1.75px;line-height:1.05;font-weight:790}h2{font-size:23px}h3{font-size:16px}.card{background:var(--panel);border:1px solid var(--edge);box-shadow:var(--shadow);border-radius:24px}.hero{min-height:251px;background:var(--hero);border-color:#b2a0fc33;box-shadow:0 18px 45px #3b23873c;color:white;isolation:isolate;padding:22px}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#10102eea,#1a0d4890 54%,#210f5259),var(--feature-poster,linear-gradient(30deg,#4d2f8c,#8461d8));background-size:cover;background-position:center 30%;z-index:-1;opacity:.92}.hero:after{content:'✳';color:white;opacity:.14;right:-38px;top:-68px;transform:rotate(20deg);font-size:235px;z-index:-1}.hero h2{font-size:31px;line-height:1.08;letter-spacing:-1.1px}.hero .small{color:#ebe4ff}.hero .pill{background:#ffffff2b;color:white;border:1px solid #ffffff40;backdrop-filter:blur(10px)}.hero .btn{background:#fffffff0;color:#261a50;box-shadow:0 8px 26px #10062950}.btn{background:linear-gradient(120deg,#8252ed,#6441d1);color:#fff;box-shadow:0 6px 20px #7651d32b;border-radius:15px;min-height:43px;transition:transform .22s cubic-bezier(.2,.9,.25,1),box-shadow .22s ease}.btn.secondary{background:var(--accent-soft);color:var(--accent);box-shadow:none}.btn.ghost{background:var(--glass);color:var(--ink);box-shadow:none;border:1px solid var(--edge)}.btn.warn{background:#e74b70;color:#fff}.btn.sm{min-height:36px}.metric{background:var(--panel);padding:18px}.metric strong{font-size:36px;letter-spacing:-1.8px}.metric span.small{line-height:1.5}.nav{border:1px solid #bbb1f249;background:var(--nav);box-shadow:0 9px 40px #110d3b36;border-radius:30px;padding:7px 5px 8px;backdrop-filter:blur(35px) saturate(190%);-webkit-backdrop-filter:blur(35px) saturate(190%)}.nav button{min-height:55px;transition:background .2s,color .2s,transform .2s}.nav button.active{background:linear-gradient(130deg,#6d43df25,#ad7bff1f);color:var(--accent)}.nav svg{stroke-width:2}.pill,.tag{border-radius:99px}.tabs{margin-bottom:4px;padding:5px 0}.tabs button{background:var(--panel);border-radius:99px;padding:10px 15px;font-weight:650}.tabs button.active{background:linear-gradient(125deg,#8154e7,#6440cf);color:white;box-shadow:0 5px 17px #7044df30}.toolbar .search{background:var(--panel);border-radius:17px}.icon-btn{background:var(--glass);border:1px solid var(--edge);border-radius:15px;color:var(--accent)}.film-row{padding:9px 11px;background:var(--panel);border-radius:20px;gap:13px;box-shadow:0 6px 19px #110e3010;transition:transform .2s}.film-row:active,.film-tile:active{transform:scale(.982)}.film-info h3{font-size:15px;line-height:1.25;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.film-row .poster{width:66px;height:94px}.poster{padding:0;background:linear-gradient(145deg,#634bba,#121837);display:block;overflow:hidden;position:relative;isolation:isolate;box-shadow:inset 0 0 0 1px #ffffff12;flex-shrink:0}.poster img{display:block;width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.poster:after{background:linear-gradient(180deg,#08092200 70%,#090b2578);z-index:1}.poster-fallback-title{display:none!important}.poster.image-fallback{background:linear-gradient(155deg,#9069eb,#171742)}.poster.image-fallback .poster-fallback-title{display:flex!important;position:absolute;inset:10px;align-items:center;justify-content:center;font-size:13px;color:white;text-shadow:0 2px 13px #0005;z-index:2}.film-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.film-grid .empty{grid-column:1/-1}.film-tile{text-align:left;min-width:0;border:0;background:none;color:var(--ink);padding:0;border-radius:18px;transition:transform .2s ease}.film-tile .poster{width:100%;height:auto;aspect-ratio:2/3;border-radius:18px;box-shadow:0 12px 27px #0b0d2533}.film-tile .tile-caption{padding:10px 3px 3px;display:flex;flex-direction:column;gap:5px}.tile-caption>strong{font-size:14px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:34px;font-weight:730}.tile-caption>span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-rating{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:3px}.tile-rating span{font-size:10px;padding:5px 7px;border-radius:9px;background:var(--accent-soft);color:var(--accent);font-weight:760}.tile-rating em{font-size:13px;font-style:normal}.sheetback{background:#07051dbd;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.sheet{max-height:93dvh;border-radius:32px 32px 0 0;background:var(--bg);border-color:var(--edge);box-shadow:0 -16px 75px #09031d55;padding-top:20px}.sheet .handle{background:var(--accent);opacity:.5;width:40px}.sheet-header h2{font-size:22px}.detail-hero{align-items:flex-start;gap:17px}.detail-hero .poster{width:124px;height:181px;border-radius:18px;box-shadow:0 9px 25px #0a0d2b30}.detail-hero h2{font-size:27px;line-height:1.15;overflow-wrap:anywhere}.detail-hero .pill{margin-top:4px}.details-metrics .card{background:var(--panel);box-shadow:none}.details-metrics strong{color:var(--accent)}.rating-big{color:var(--accent)}.slider{accent-color:#8656ec;height:33px;cursor:pointer}.emoji-choice{padding:12px 2px;border-radius:17px;min-height:75px;transition:transform .2s,border .2s,background .2s}.emoji-choice span{font-size:27px}.emoji-choice.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 5px 15px #6535cb17}.emoji-choice small{font-size:9px}.shelf-card:after{color:var(--accent)}.profile-pick{min-height:86px;background:var(--panel);border-radius:25px;font-size:24px;box-shadow:var(--shadow)}.profile-pick:active{background:var(--accent-soft)}.intro{padding-top:calc(env(safe-area-inset-top) + 85px)}.intro h1{font-size:74px;line-height:.99;letter-spacing:-5px}.intro h1 span{background:linear-gradient(140deg,#5636bd,#ad7dfa);background-clip:text;-webkit-background-clip:text;color:transparent!important}.intro>.eyebrow{font-size:12px}.search::placeholder,input::placeholder,textarea::placeholder{color:var(--muted);opacity:.78}.checkline{background:var(--panel);border-radius:15px}.checkline input{accent-color:var(--accent)}.progress{height:9px;background:var(--bar)}.progress>span{background:linear-gradient(90deg,#6241d8,#b27bff)}#toast{background:#3c237d;color:white;box-shadow:0 9px 32px #0909296b}@media(min-width:720px){.app{background:var(--canvas-glow),var(--bg);box-shadow:0 14px 80px #07091e15}}@media(prefers-reduced-motion:no-preference){.card,.film-tile,.film-row,.poster,.nav{will-change:auto}.sheet{animation:rise .31s cubic-bezier(.16,1,.3,1)}.sheetback{animation:fade .25s ease}.film-tile .poster img{transition:transform .5s ease}.film-tile:active .poster img{transform:scale(1.04)}}

/* Custom cover controls */
.poster-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 16px}
.poster-hint{flex-basis:100%;margin:0;line-height:1.4}
input[type=file]:not([hidden]){width:100%;max-width:100%;padding:12px;background:var(--panel);border:1px solid var(--edge);border-radius:13px;color:var(--ink)}
