@charset "UTF-8";
/* The fonts are served from this site (the same files Google Fonts serves, Arabic and Latin parts only). Loading Google's stylesheet held the first paint for a connection to another server on every phone. */
@font-face{font-family:'Alexandria';font-style:normal;font-weight:700 800;font-display:swap;src:url(assets/fonts/alexandria-arabic.woff2?v=quiet134) format('woff2');unicode-range:U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:'Alexandria';font-style:normal;font-weight:700 800;font-display:swap;src:url(assets/fonts/alexandria-latin-ext.woff2?v=quiet134) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Alexandria';font-style:normal;font-weight:700 800;font-display:swap;src:url(assets/fonts/alexandria-latin.woff2?v=quiet134) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-400-arabic.woff2?v=quiet134) format('woff2');unicode-range:U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-400-latin-ext.woff2?v=quiet134) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-400-latin.woff2?v=quiet134) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-500-arabic.woff2?v=quiet134) format('woff2');unicode-range:U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-500-latin-ext.woff2?v=quiet134) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-500-latin.woff2?v=quiet134) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-600-arabic.woff2?v=quiet134) format('woff2');unicode-range:U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-600-latin-ext.woff2?v=quiet134) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/ibm-plex-sans-arabic-600-latin.woff2?v=quiet134) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(assets/fonts/jetbrains-mono-latin.woff2?v=quiet134) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{--bg:var(--bg);--bg-soft:var(--bg-soft);--ink:var(--ink);--turquoise:var(--turquoise);--gold:var(--gold);--panel:var(--panel);--paper:var(--panel);--paper-ink:var(--ink);--body:"IBM Plex Sans Arabic",sans-serif;--heading:"Alexandria",sans-serif;--mono:"JetBrains Mono",monospace}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;scroll-padding-top:20px;overflow-x:clip}body{margin:0;color:var(--ink);font:400 17px/1.8 var(--body);overflow-x:clip}h1,h2,h3,p{margin:0}h1,h2,h3{font:700 clamp(25px,3.5vw,44px)/1.25 var(--heading)}h3{font-size:clamp(22px,2.4vw,30px)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}img{display:block;max-width:100%;height:auto}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ink);outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(1160px,calc(100% - 40px));margin-inline:auto}.section{position:relative;isolation:isolate;padding-block:48px}main,.footer{position:relative;z-index:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:12px;right:16px;z-index:100;background:var(--panel);padding:10px 18px;transform:translateY(-200%)}.skip:focus{transform:none}.clip-defs{position:absolute;pointer-events:none;overflow:hidden}.page-atmosphere{position:fixed;inset:0;z-index:0;overflow:clip;pointer-events:none;background:radial-gradient(ellipse at 20% 18%,var(--bg-soft) 0%,transparent 60%),radial-gradient(ellipse at 90% 70%,var(--glow-mint) 0%,transparent 60%),var(--bg)}.geometry-pattern{position:absolute;inset:-20%;background:url("assets/pattern.svg?v=quiet134") repeat;background-size:160px;opacity:.06}.sand-glow,.turquoise-glow{position:absolute;width:110vw;height:calc(var(--svh,1svh)*110);border-radius:50%;left:-25%;top:-15%;background:radial-gradient(ellipse,var(--panel-acc),transparent 65%)}.turquoise-glow{left:35%;top:35%;background:radial-gradient(ellipse,var(--teal-a1f),transparent 65%)}#dust{display:none;position:fixed;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.motion-ready #dust{display:block}.scroll-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:70;pointer-events:none}.scroll-progress span{display:block;height:100%;background:var(--turquoise);transform:scaleX(0);transform-origin:right}.button{display:inline-flex;align-items:center;justify-content:center;position:relative;isolation:isolate;min-height:52px;padding:12px 24px;border:1px solid var(--ink);border-radius:14px;background:var(--ink);color:var(--panel);font-weight:600;line-height:1.5;box-shadow:0 9px 24px var(--shade-a1a),inset 0 1px 0 var(--panel-a4d);transition:transform .18s,opacity .18s}.button:before{content:"";position:absolute;inset:-10px;border-radius:inherit;background:radial-gradient(ellipse,var(--teal-a33),transparent 70%);z-index:-1;opacity:0;transition:opacity .25s;pointer-events:none}.button:hover:not(:disabled):before{opacity:1}.button:hover:not(:disabled){transform:translateY(-3px)}.button:active:not(:disabled){transform:scale(.98)}.secondary{background:transparent;color:var(--ink);border-color:var(--ink-a59);box-shadow:none}.plain-button{background:none;border:0;border-bottom:1px solid currentColor;color:inherit;min-height:44px;padding:7px 3px}.hero{height:calc(var(--svh,1svh)*100);position:relative;isolation:isolate;display:flex;align-items:center;text-align:center;overflow:clip}.hero-masthead{position:absolute;top:max(12px,env(safe-area-inset-top));left:0;right:0;display:flex;justify-content:center;align-items:center;gap:7px;font-weight:500;font-size:14px}.hero-masthead>img{width:20px;height:25px}.hero-layout{height:100%;padding-top:48px;padding-bottom:max(15px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.hero-portrait{position:relative;flex:none;height:clamp(195px,calc(var(--svh,1svh)*31),285px);aspect-ratio:.88;filter:drop-shadow(0 12px 12px var(--shade-a29))}.hero-portrait>img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;-webkit-mask:url("assets/door/door-shape.svg?v=quiet134") 0 0/100% 100% no-repeat;mask:url("assets/door/door-shape.svg?v=quiet134") 0 0/100% 100% no-repeat}.portrait-outline{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.portrait-outline path{fill:none;stroke:var(--gold);stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0;stroke-linejoin:round}.hero-intro h2{font-size:clamp(24px,4.2vw,42px);font-weight:800}.hero-tagline{font-size:18px;margin-top:6px}.hero-action{width:100%;max-width:430px}.hero-button,.closing-content>.button{min-width:210px;min-height:55px;background:var(--turquoise);border-color:var(--turquoise);color:var(--panel);font:700 22px/1.5 var(--heading);box-shadow:0 10px 26px var(--teal-a33),inset 0 1px 0 var(--panel-a66)}.browser-note{font-size:13px;line-height:1.6;max-width:365px;margin:10px auto 0}.feedback{font-size:15px;line-height:1.7}.hero:has(.feedback:not(:empty)) .hero-portrait{height:150px}
.result-region{min-height:calc(var(--svh,1svh)*100);display:grid;place-items:center;padding:34px 20px;scroll-margin-top:0}.result-card{width:min(680px,100%);background:var(--panel);color:var(--ink);border-radius:10px;padding:27px 20px;text-align:center}.result-card h2{font-size:clamp(22px,3vw,31px)}.current-code{display:block;direction:ltr;unicode-bidi:isolate;font:500 clamp(27px,6.5vw,48px)/1.5 var(--mono);margin:20px 0;white-space:nowrap}.result-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.result-actions .button{padding-inline:19px;min-height:50px}.paste-hint{font-size:17px;margin-top:19px}.result-card :focus-visible{outline-color:var(--ink)}.history{margin-top:23px;padding-top:18px;border-top:1px solid var(--ink-a33);text-align:start}.history>p{font-size:15px;margin-bottom:10px}.history ul{max-height:130px;list-style:none;overflow:auto;overscroll-behavior:contain;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:4px 20px}.history li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:5px;border-bottom:1px solid var(--ink-a26)}.history code{font:400 15px/1.6 var(--mono);direction:ltr;unicode-bidi:isolate}.history button{min-height:38px;padding:5px 10px;background:none;color:var(--ink);border:1px solid var(--ink-a4c);border-radius:5px;font-size:14px}.submit-row{display:flex;gap:9px;margin-top:12px}.submit-row input{width:100%;min-width:0;flex:1;font:400 17px/1.6 var(--mono);padding:10px 12px;border:1px solid var(--turquoise);border-radius:5px;background:transparent;color:var(--ink)}.submit-row input::placeholder{color:var(--ink);opacity:1}.submit-row .button{padding-inline:14px;font-size:16px;white-space:nowrap}.manual-copy{padding:17px 0;margin-top:18px;border-block:1px solid var(--ink-a40)}.manual-copy label{display:block;font-size:15px}.manual-copy input{display:block;margin:10px auto 0;width:100%;max-width:320px;padding:10px;background:transparent;border:1px solid var(--ink);color:var(--ink);border-radius:4px;font:400 21px/1.5 var(--mono);text-align:center}.manual-copy .plain-button{margin-top:8px}
.kurrasa-section{padding-block:65px;overflow:clip}.notebook-stage{position:relative;display:grid;grid-template-columns:1fr;gap:36px;align-items:center}.kurrasa-copy{position:relative;z-index:4;max-width:460px}.kurrasa-copy h2{font-size:clamp(32px,4.7vw,65px);margin-bottom:20px}.kurrasa-copy>p{max-width:470px}.safe-note{font-size:15px;margin-top:12px;color:var(--ink)}.social-links{display:flex;flex-wrap:wrap;gap:5px 22px;margin-top:18px}.social-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding-block:8px;font-size:16px;border-bottom:1px solid var(--ink-a4c)}.social-links a:hover:hover{border-color:var(--ink)}.social-links img{width:18px;height:18px;object-fit:contain}.notebook-desk{position:relative;min-width:0;isolation:isolate;padding:25px 0 35px;perspective:1600px}.notebook{position:relative;perspective:1600px;min-width:0;display:grid;gap:26px;isolation:isolate;width:calc(100% - 20px);max-width:470px;margin-right:auto;transform-origin:50% 65%}.notebook-page{background:var(--paper) url("assets/notebook-paper.webp?v=quiet134") repeat;background-size:390px;padding:30px 27px 22px 42px;border:1px solid var(--gold);border-radius:5px 12px 12px 5px;box-shadow:-12px 12px 0 -5px #e6d5b4,-14px 14px 0 -5px var(--gold);transform-origin:left center;backface-visibility:hidden;position:relative;min-height:535px;color:var(--paper-ink)}.notebook-page:before{content:"";position:absolute;left:24px;top:0;bottom:0;width:1px;background:var(--gold-a45)}.page-meta,.page-bottom{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--ink)}.page-meta{margin-bottom:17px}.page-meta>span:last-child{font-size:21px;color:var(--ink)}.notebook-page h3{font-size:clamp(25px,2.5vw,35px)}.notebook-page>p{font-size:17px;margin-top:10px;margin-bottom:18px}.notebook-page img{width:100%;height:auto;object-fit:cover;border:4px solid white;transform:rotate(2deg);box-shadow:0 5px 11px var(--shade-a2e)}.page-whatif img{height:235px;width:auto;margin:auto;transform:rotate(-3deg)}.page-series img{height:185px;width:auto;margin-inline:auto;transform:rotate(-3deg)}.page-soon img{margin-block:18px;transform:rotate(-2deg)}.page-bottom{margin-top:22px;padding-top:13px;border-top:1px solid var(--gold);gap:10px}.page-bottom>span{font-size:25px;color:var(--ink)}.page-soon h3{font-size:28px}.page-soon ul{font-size:17px;line-height:1.8;list-style:none;padding:0;margin:15px 0}.page-soon li:before{content:"✧";margin-left:10px;color:var(--ink)}.notebook-binding{display:none;z-index:9;pointer-events:none;position:absolute;left:-13px;top:35px;bottom:35px;width:40px;background:repeating-linear-gradient(0deg,transparent 0 27px,var(--ink) 28px 32px,transparent 33px 40px);filter:drop-shadow(1px 2px 1px var(--shade-a66))}.notebook-shadow{position:absolute;inset:8% -8% 2% 4%;background:radial-gradient(ellipse,var(--ink-a40) 10%,var(--ink-a1a) 48%,transparent 70%);filter:blur(17px);transform:rotate(-5deg);z-index:-1}.page-turn-shadow{position:absolute;inset:0;z-index:8;background:linear-gradient(90deg,var(--ink-a66),var(--ink-a26) 35%,transparent 75%);opacity:0;transform-origin:left;pointer-events:none;border-radius:inherit}.desk-objects{position:absolute;inset:0;z-index:-1;pointer-events:none}.desk-item{position:absolute;filter:drop-shadow(7px 11px 6px var(--shade-a66));max-width:none}.pencil{width:200px;top:-20px;left:-20px;transform:rotate(-20deg)}.ruler{width:47px;right:-20px;top:22%;transform:rotate(18deg)}.eraser{width:80px;left:-10px;bottom:-5px;transform:rotate(15deg)}.paperclip{width:29px;right:6%;bottom:-28px;transform:rotate(-30deg)}.sticker{width:90px;border:6px solid var(--panel);border-radius:16px;box-shadow:0 7px 20px var(--shade-a66);filter:none}.sticker-animals{right:-10px;top:-30px;transform:rotate(14deg)}.sticker-stories{left:-25px;top:46%;transform:rotate(-15deg)}.sticker-letters{right:0;bottom:-30px;transform:rotate(9deg)}.motion-ready .notebook{height:535px}.motion-ready .notebook-page{position:absolute;inset:0;min-height:0;padding-top:26px;padding-bottom:20px}.motion-ready .page-meta{margin-bottom:13px}.motion-ready .page-bottom{margin-top:18px}.motion-ready .notebook-page img{max-height:190px}.motion-ready .page-whatif img{height:180px;max-height:180px}.motion-ready .page-soon img{margin-block:10px}.motion-ready .page-soon ul{margin-block:8px}.motion-ready .page-soon .page-bottom{padding-top:10px;margin-top:16px}.motion-ready .notebook-binding{display:block}

.result-region{background:radial-gradient(ellipse at 50% 35%,var(--panel-a99),transparent 70%)}.result-card{position:relative;border:1px solid var(--gold-a33);border-radius:22px;box-shadow:0 30px 70px var(--shade-a14),0 7px 16px var(--shade-a12),inset 0 1px 0 var(--surface)}.current-code{color:var(--ink)}[data-reveal]{position:relative}.reveal-haze{display:none;position:absolute;inset:0;pointer-events:none;filter:blur(7px);font:inherit;line-height:inherit}.motion-ready .reveal-haze{display:block;opacity:0}.word-mask{display:inline-block;overflow:clip;vertical-align:bottom;padding-bottom:.1em;margin-bottom:-.1em}.reveal-word{display:inline-block}.section{background:radial-gradient(ellipse at 80% 40%,var(--bg-soft-a80),transparent 75%)}.kurrasa-copy{z-index:4}.social-links a{border-bottom-color:var(--ink-a33)}.social-links img{width:18px;height:18px;object-fit:contain}.safe-note{color:var(--ink)}.tanira-section{overflow:clip;padding:0;background:radial-gradient(ellipse at 15% 30%,var(--panel-a99),transparent 65%)}.tanira-stage{position:relative;min-height:calc(var(--svh,1svh)*100);display:flex;flex-direction:column;justify-content:center;gap:25px;padding-block:65px;z-index:2}.section-heading{text-align:center}.section-heading h2{font-size:clamp(28px,4.2vw,53px);margin-bottom:15px}.section-heading p{max-width:430px;margin-inline:auto}.tanira-stage>.social-links{justify-content:center}.rising-sun{position:absolute;width:clamp(100px,16vw,220px);aspect-ratio:1;left:8%;top:15%;border-radius:50%;background:radial-gradient(circle,var(--panel),var(--gold-a33) 35%,transparent 70%);box-shadow:0 0 90px var(--gold-a1a);pointer-events:none}.work-viewport{position:relative;perspective:1200px;width:100%;overflow:clip;min-height:340px;padding-block:25px}.work-track{direction:ltr;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;width:min(860px,calc(100% - 60px));margin-inline:auto;align-items:center;transform-style:preserve-3d}.video-card{display:block;position:relative;aspect-ratio:9/16;min-width:0;border:5px solid var(--panel);border-radius:26px;background:var(--panel);box-shadow:0 27px 40px var(--shade-a24),0 8px 15px var(--shade-a1a),inset 0 0 0 1px var(--gold-a66);transform-style:preserve-3d}.video-card>img{width:100%;height:100%;object-fit:cover;border-radius:21px}.phone-notch{position:absolute;top:6px;left:50%;transform:translateX(-50%);width:33%;height:9px;border-radius:8px;background:var(--deep)}.video-glow{position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(ellipse,var(--gold-a66),transparent 70%);z-index:-1;opacity:0;pointer-events:none}.motion-ready .work-viewport{height:clamp(300px,calc(var(--svh,1svh)*49),510px);padding:25px 0;overflow:clip;contain:layout paint}.motion-ready .work-track{position:absolute;top:25px;left:0;display:flex;width:max-content;margin:0;gap:30px;height:calc(100% - 50px)}.motion-ready .video-card{height:100%;width:auto;flex:none;aspect-ratio:9/16;will-change:transform}.motion-ready .tanira-stage{height:calc(var(--svh,1svh)*100);min-height:610px;padding-block:30px;gap:17px}.coder-section{padding:0;overflow:clip}.coder-stage{position:relative;min-height:calc(var(--svh,1svh)*100);display:flex;flex-direction:column;justify-content:center;padding-block:80px;gap:26px}.coder-copy{max-width:530px;position:relative;z-index:3}.coder-copy h2{font-size:clamp(32px,4.5vw,60px);margin-bottom:20px}.code-space{position:relative;perspective:1000px;height:360px;min-width:0;isolation:isolate;overflow:clip;padding:18px 5px 10px}.terminal{position:relative;z-index:2;border:1px solid #2b9c9b80;border-radius:14px;background:var(--deep);color:var(--on-deep);box-shadow:0 30px 60px #1f4e5524,0 10px 20px #1f4e5524,inset 0 1px 0 #fff9ee33;overflow:clip;transform-style:preserve-3d}.terminal-top{display:flex;align-items:center;gap:7px;direction:ltr;padding:16px 18px;border-bottom:1px solid #fff9ee33;background:#fff9ee0d}.terminal-top>span{width:8px;height:8px;background:var(--gold);border-radius:50%}.terminal-top>span:nth-child(2){background:var(--turquoise)}.terminal-top>span:nth-child(3){background:var(--on-deep)}.terminal-top small{margin-left:auto;font:400 11px var(--mono);color:var(--on-deep)}.terminal pre{height:240px;margin:0;padding:20px 16px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--on-deep);font:400 clamp(12px,2.7vw,16px)/1.9 var(--mono);text-align:left;overflow:auto;overscroll-behavior:contain;tab-size:2}.terminal pre:focus-visible{outline-color:var(--on-deep);outline-offset:-5px}.terminal>p{font-size:13px;padding:0 18px 17px;color:var(--on-deep)}.terminal-cursor{color:#fff;animation:cursor-blink 1s steps(1) infinite}@keyframes cursor-blink{50%{opacity:0}}.code-fragment{display:none;position:absolute;margin:0;white-space:pre-wrap;padding:15px;border:1px solid var(--gold-a66);border-radius:10px;background:var(--panel);color:var(--ink);font:400 12px/1.9 var(--mono);text-align:left;box-shadow:0 15px 30px var(--shade-a24);pointer-events:none;backface-visibility:hidden}.motion-ready .code-fragment{display:block}.fragment-fetch{left:0;top:0}.fragment-gsap{right:0;top:45%}.fragment-claim{left:15%;top:80%}.coder-stage>.social-links{position:relative;z-index:3;margin:0}.closing-section{height:calc(var(--svh,1svh)*100);position:relative;isolation:isolate;overflow:clip;display:flex;align-items:flex-end;justify-content:center;background:radial-gradient(ellipse at 50% 45%,var(--panel),transparent 65%)}.closing-camera{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:-1}.closing-rig{position:relative;height:calc(var(--svh,1svh)*62);aspect-ratio:572/1200;filter:drop-shadow(0 18px 20px var(--shade-a26))}.closing-opening{position:absolute;inset:0;width:100%;height:100%}.closing-leaf{position:absolute;top:0;width:50%;height:100%}.closing-left{left:0}.closing-right{right:0}.closing-content{display:flex;flex-direction:column;align-items:center;padding-bottom:45px}.footer{padding-block:30px 80px;text-align:center;position:relative}.footer>p{font-size:13px;line-height:1.8;margin-top:9px}.install-area:has(>:not([hidden])){margin-bottom:18px}.install-area p{font-size:14px;max-width:550px;margin:12px auto}.footer .plain-button{font-size:16px}.code-pill{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:45;padding:5px;background:var(--panel-ae6);border:1px solid var(--gold-a80);border-radius:40px;box-shadow:0 10px 35px var(--shade-a24);backdrop-filter:blur(10px)}.code-pill .button{border-radius:30px;min-height:43px;padding:8px 30px;font-size:17px}.copy-toast{position:fixed;bottom:max(78px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:80;width:min(470px,calc(100% - 32px));max-height:calc(100svh - 32px);overflow:auto;overscroll-behavior:contain;padding:20px 20px 18px 50px;border:1px solid var(--gold-a80);border-radius:16px;background:var(--panel);color:var(--ink);box-shadow:0 20px 65px var(--shade-a26)}.door-playing{overflow:hidden}.door-playing .code-pill{visibility:hidden}.door-overlay{position:fixed;inset:0;z-index:60;overflow:clip;background:var(--bg);isolation:isolate}.door-camera{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform-origin:50% 50%}.door-rig{position:relative;height:calc(var(--svh,1svh)*62);aspect-ratio:572/1200;perspective:1400px;transform-style:preserve-3d;isolation:isolate}.door-opening{position:absolute;inset:0;width:100%;height:100%;opacity:0;transform-origin:50% 57.4%;filter:drop-shadow(0 0 30px var(--panel))}.door-leaf{position:absolute;top:0;width:50%;height:100%;backface-visibility:hidden;transform-style:preserve-3d}.door-leaf>img{width:100%;height:100%;object-fit:fill;backface-visibility:hidden}.door-left{left:0;transform-origin:left center}.door-right{right:0;transform-origin:right center}.door-light{position:absolute;inset:0;background:var(--panel);opacity:0;pointer-events:none}.door-wait{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;gap:4px;width:min(420px,calc(100% - 40px));color:var(--ink);text-align:center;opacity:0}.door-wait span{font:700 13px/1.6 var(--heading);color:var(--gold-ink)}.door-wait b{font:700 21px/1.6 var(--heading)}.noscript-note{position:fixed;bottom:0;right:0;left:0;background:var(--panel);color:var(--ink);padding:12px;text-align:center;z-index:90}.pin-spacer{max-width:100%}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.lenis [data-lenis-prevent]{overscroll-behavior:contain}html.lenis,html.lenis body{height:auto}.portal-active .notebook-stage{clip-path:url(#clip-kurrasa)}.portal-active #closing{clip-path:url(#clip-closing)}
@media(min-width:701px){.wrap{width:min(1160px,calc(100% - 100px))}.hero-layout{gap:15px}.hero-portrait{height:clamp(220px,calc(var(--svh,1svh)*34),320px)}.hero-tagline{font-size:20px}.hero-intro h2{font-size:clamp(29px,3.5vw,43px)}.result-card{padding:35px 38px}.history ul{grid-template-columns:1fr 1fr;max-height:145px}.notebook-stage{grid-template-columns:1fr 1fr;gap:8%;padding-block:70px;min-height:700px}.motion-ready .notebook-stage{height:calc(var(--svh,1svh)*100);min-height:650px;padding-block:30px}.notebook{width:100%;max-width:500px}.notebook-desk{padding-block:25px 35px}.sticker{width:110px}.pencil{width:230px;left:-40px;top:-20px}.ruler{width:60px;right:-45px}.eraser{left:-45px}.paperclip{right:0}.sticker-animals{right:-35px;top:-35px}.sticker-stories{left:-55px}.sticker-letters{right:-30px;bottom:-35px}.social-links a{font-size:17px}.motion-ready .work-track{gap:55px}.motion-ready .work-viewport{height:clamp(350px,calc(var(--svh,1svh)*56),560px)}.work-track{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}.coder-stage{display:grid;grid-template-columns:.85fr 1.2fr;gap:7%;align-content:center;align-items:center}.coder-stage>.social-links{grid-column:1/-1}.code-space{height:400px}.terminal pre{height:265px;padding:25px;font-size:14px}.terminal-top{padding:17px 25px}.terminal>p{padding-inline:25px}.code-fragment{font-size:13px}.closing-content{padding-bottom:55px}.door-rig,.closing-rig{height:calc(var(--svh,1svh)*70)}.portal-active .tanira-stage{clip-path:url(#clip-tanira)}.portal-active .coder-stage{clip-path:url(#clip-coder)}}
@media(max-width:700px){.notebook-page{padding:23px 21px 20px 33px}.notebook-page:before{left:18px}.page-meta{font-size:14px}.notebook-page h3{font-size:27px}.page-bottom{font-size:14px}.page-soon h3{font-size:25px}.motion-ready .notebook-desk{width:100%;height:590px;display:flex;align-items:center}.motion-ready .notebook{height:535px}.motion-ready .page-series img{height:160px;max-height:160px}.motion-ready .notebook-binding{width:33px;left:-12px;top:30px;bottom:30px}.sticker-stories{left:-12px}.notebook-shadow{inset:12% -5% 0 3%}.motion-ready .coder-stage{height:calc(var(--svh,1svh)*100);min-height:650px;padding-block:35px;gap:20px}.code-space{height:340px;width:100%}.code-fragment{font-size:10px}.fragment-fetch{left:0;top:0}.fragment-gsap{right:0;top:50%}.fragment-claim{top:86%}.footer{padding-top:40px}}
:where(.h700) .hero-layout{gap:9px;padding-top:44px;padding-bottom:10px}:where(.h700) .hero-portrait{height:180px}:where(.h700) .hero-intro h2{font-size:25px}:where(.h700) .hero-tagline{font-size:17px;margin-top:4px}:where(.h700) .hero-button{min-height:50px;font-size:21px}:where(.h700) .browser-note{margin-top:8px;font-size:12px;line-height:1.6;max-width:330px}:where(.h700) .hero:has(.feedback:not(:empty)) .hero-portrait{height:100px}
@media(max-width:700px){:where(.h670) .motion-ready .notebook-desk{height:540px}:where(.h670) .motion-ready .notebook{height:500px}:where(.h670) .motion-ready .notebook-page img{max-height:160px}:where(.h670) .motion-ready .page-whatif img{height:160px}:where(.h670) .motion-ready .page-series img{height:150px;max-height:150px}:where(.h670) .motion-ready .page-bottom{margin-top:12px}:where(.h670) .motion-ready .notebook-page>p{margin-bottom:12px}:where(.h670) .motion-ready .notebook-page{padding-top:20px}:where(.h670) .motion-ready .tanira-stage{min-height:550px;gap:10px}:where(.h670) .motion-ready .work-viewport{height:310px;min-height:290px}:where(.h670) .motion-ready .coder-stage{min-height:580px;gap:15px}:where(.h670) .coder-copy h2{margin-bottom:12px}:where(.h670) .terminal pre{height:230px}}
:where(.h580) .hero-layout{padding-top:38px;gap:6px}:where(.h580) .hero-portrait{height:120px}:where(.h580) .hero-intro h2{font-size:22px}:where(.h580) .hero-tagline{font-size:16px}:where(.h580) .hero-button{min-height:44px;font-size:20px}:where(.h580) .browser-note{font-size:11px;margin-top:6px}:where(.h580) .hero-masthead{top:7px;font-size:12px}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.result-card{padding-inline:16px}.current-code{font-size:25px}.result-actions .button{padding-inline:14px;font-size:16px}.submit-row{flex-wrap:wrap}.submit-row input{flex-basis:100%}.submit-row .button{width:100%}.social-links{gap:5px 15px}.notebook-page{padding-inline:31px 17px}.notebook-page h3{font-size:25px}.hero-portrait{height:175px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.notebook-page img{transform:none}.code-fragment{display:none}#dust,.scroll-progress{display:none}.portal-stage{clip-path:none!important}}
#shrines{display:none;position:absolute;inset:0;width:100%;height:100%;opacity:.65}.motion-ready #shrines{display:block}.motion-ready .geometry-pattern{display:none}
.hero-groups{display:grid;gap:8px;width:min(430px,100%)}
.hero-group{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--ink-a1f);border-radius:14px;background:var(--panel-acc);box-shadow:0 6px 16px var(--shade-a12);text-align:start}
.group-logo{width:56px;height:56px;flex:none;border-radius:13px;object-fit:cover}
.group-text{min-width:0;flex:1}
.group-text h2{font-size:17px;line-height:1.3;display:inline}
.group-text p{display:inline;font-size:13px;margin-inline-start:8px;color:var(--ink)}
.group-links{display:flex;gap:4px;margin-top:3px;margin-inline-start:-8px}
.group-links a{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;transition:background .2s,transform .2s}
.group-links a:hover{background:var(--teal-a26);transform:translateY(-2px)}
.group-links img{width:22px;height:22px}
@media(min-width:701px){.hero-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:min(860px,100%)}.hero-group{flex-direction:column;gap:6px;padding:12px 12px 8px;text-align:center}.group-text h2,.group-text p{display:block}.group-text p{margin-inline-start:0}.group-links{justify-content:center;margin-inline-start:0}}
:where(.h760) .hero-portrait{height:clamp(110px,calc(var(--svh,1svh)*19),170px)}:where(.h760) .hero-layout{gap:7px}:where(.h760) .hero-group{padding-block:5px}:where(.h760) .group-logo{width:48px;height:48px}:where(.h760) .group-links a{width:36px;height:36px}
.kurrasa-copy{position:relative;z-index:6}
@media(max-width:700px){.social-links{display:grid;grid-template-columns:repeat(4,auto);justify-content:center;gap:6px 14px;font-size:14px}.social-links a{white-space:nowrap}}
.door-key{position:absolute;left:100%;top:57.4%;width:130%;height:auto;max-width:none;object-fit:contain;transform-origin:100% 50%;z-index:3;backface-visibility:visible;filter:drop-shadow(0 3px 2px var(--shade-a26))}
.door-leaf>img.door-key{width:130%;height:auto;object-fit:contain}
.kurrasa-copy,.coder-copy{padding:24px 26px;border:1px solid var(--ink-a1f);border-radius:18px;background:var(--panel-aeb);box-shadow:0 14px 34px var(--shade-a14)}
.kurrasa-copy h2{font-weight:800;margin-bottom:12px}
.kurrasa-copy>p{font-size:18px;font-weight:500;line-height:1.75}
.kurrasa-copy .safe-note{font-size:15px;margin-top:8px}
.social-links a{font-weight:500}
.motion-ready .notebook-page.page-science img,.notebook-page.page-science img{width:100%;height:auto;max-height:none;aspect-ratio:16/9;object-fit:contain;background:var(--surface);transform:rotate(.6deg)}
.group-links a{width:44px;height:44px}
.hero-portrait{height:clamp(170px,calc(var(--svh,1svh)*27),285px)}
:where(.h760) .group-links a{width:44px;height:38px}
:where(.h560) .hero{height:auto;min-height:calc(var(--svh,1svh)*100);overflow:visible}
.door-leaf>img.door-key{backface-visibility:visible}
.copy-toast{bottom:max(12px,env(safe-area-inset-bottom));width:min(500px,calc(100% - 24px));max-height:calc(100svh - 24px);padding:18px;text-align:start}
.toast-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.toast-head h2{font-size:26px;font-weight:800;color:var(--ink)}
#toast-close{flex:none;width:44px;height:44px;margin:-6px -6px -6px 0;border:0;border-radius:10px;background:var(--ink-a14);color:var(--ink);font-size:28px;line-height:1;cursor:pointer}
#toast-message{font-size:17px;font-weight:500;margin:6px 0 12px}
.copy-toast .hero-groups{grid-template-columns:1fr;width:100%;gap:7px}
.copy-toast .hero-group{flex-direction:row;padding:6px 10px;gap:10px;text-align:start;background:var(--surface-a99);box-shadow:none}
.copy-toast .group-logo{width:46px;height:46px}
.copy-toast .group-text h2{display:inline;font-size:16px}
.copy-toast .group-text p{display:inline;margin-inline-start:8px;font-size:13px}
.copy-toast .group-links{justify-content:flex-start;margin-inline-start:-8px;margin-top:1px}
.copy-toast .group-links a{height:38px}
#toast-again{width:100%;min-height:52px;margin-top:12px;font-size:19px}
.link-button{display:inline-block;min-height:36px;margin-top:4px;padding:4px 8px;border:0;background:none;color:var(--ink);font:500 14px/1.6 var(--body);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.submit-dialog{width:min(440px,calc(100% - 32px));padding:24px 22px;border:1px solid var(--gold-a66);border-radius:18px;background:var(--panel);color:var(--ink);text-align:start;box-shadow:0 30px 70px var(--shade-a40)}
.submit-dialog::backdrop{background:var(--shade-a66)}
.submit-dialog h2{font-size:24px;font-weight:800}
.submit-dialog>p{margin-top:4px;font-size:16px}
.submit-dialog .feedback:not(:empty){margin-top:12px}
.dialog-close{position:absolute;top:10px;left:10px;width:44px;height:44px;border:0;border-radius:10px;background:var(--ink-a14);color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
.hero-portrait{height:clamp(150px,calc(var(--svh,1svh)*25),285px)}
@media(min-width:701px){.hero-portrait{height:clamp(190px,calc(var(--svh,1svh)*30),300px)}}
:where(.h760) .hero-portrait{height:clamp(100px,calc(var(--svh,1svh)*17),150px)}
:where(.hmin761) .link-button{min-height:44px}
#hero-feedback:not(:empty){position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;z-index:55;width:min(440px,calc(100% - 24px));margin:0;padding:12px 16px;transform:translateX(-50%);border:1px solid var(--gold-a80);border-radius:14px;background:var(--panel);color:var(--ink);font-weight:500;line-height:1.6;box-shadow:0 14px 34px var(--shade-a33)}
.hero-offer{font-size:15px;font-weight:600;margin-bottom:6px}
.hero-links-row{display:flex;justify-content:center;flex-wrap:wrap;gap:0 14px;min-height:40px}:where(.hmin761) .hero-links-row{min-height:48px}
/* «هات كود» and «ضيف كودك» share one row: the big one keeps its look and height, the smaller one sits beside it at the same height so the first screen does not change size. */
.hero-cta-row{display:flex;justify-content:center;align-items:stretch;gap:8px;width:100%}.hero-cta-row .hero-button{flex:1 1 auto;min-width:0}.hero-cta-row .hero-add{flex:0 1 auto;max-width:40%;min-width:0;min-height:0;padding:6px 16px;border-width:1.5px;border-color:var(--ink-a59);font:700 16px/1.3 var(--heading);text-wrap:balance}@media(max-width:360px){.hero-cta-row{gap:6px}.hero-cta-row .hero-add{padding-inline:12px;font-size:15px}}
.hero-button,.closing-content>.button{background:var(--ink);border-color:var(--ink);box-shadow:0 10px 26px var(--shade-a33),inset 0 1px 0 #ffffff29}
.result-card .install-area{margin-top:10px}
#toast-step{font-size:18px;font-weight:700;margin-top:6px}
#toast-message{margin-top:2px}
.copy-toast:focus{outline:0}
:where(.h760) .hero-offer{font-size:14px;margin-bottom:3px}
.hero-portrait{height:clamp(140px,calc(var(--svh,1svh)*21),285px)}
.hero-layout{gap:8px}
@media(min-width:701px){.hero-portrait{height:clamp(170px,calc(var(--svh,1svh)*25),300px)}.hero-layout{gap:12px}}
:where(.h760) .hero-portrait{height:clamp(84px,calc(var(--svh,1svh)*13),120px)}:where(.h760) .hero-layout{gap:5px}:where(.h760) .hero-offer{display:none}
.install-banner{position:fixed;top:max(8px,env(safe-area-inset-top));left:50%;z-index:50;display:flex;align-items:center;gap:9px;width:min(480px,calc(100% - 16px));padding:8px 10px;border:1px solid var(--gold-a66);border-radius:16px;background:var(--panel);box-shadow:0 14px 34px var(--shade-a33);transform:translate(-50%,calc(-100% - 20px));transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.install-banner.shown{transform:translate(-50%,0)}
.install-banner img{flex:none;width:42px;height:42px;border-radius:10px}
.install-banner p{flex:1;min-width:0;font-size:14px;font-weight:600;line-height:1.5;text-align:start}
#banner-close{order:3;flex:none;width:34px;height:44px;margin-inline-end:-4px;border:0;background:none;color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
#banner-action{flex:none;min-height:44px;padding:6px 14px;font-size:15px;background:var(--ink);border-color:var(--ink);color:var(--panel);white-space:nowrap}
.install-steps{margin:14px 0 0;padding-inline-start:22px;font-size:17px;line-height:1.9}
@media(prefers-reduced-motion:reduce){.install-banner{transition:none}}
/* The first screen keeps a fixed room for the install banner from the first paint: index.html sets banner-on (and banner-tall for the
   longer in-app browser text) before the page draws. The room used to follow the banner's measured height, which moved the first screen
   once more after the banner appeared. */
.banner-on .hero-layout{padding-top:84px}.banner-tall .hero-layout{padding-top:122px}
.banner-on .hero-portrait{height:clamp(130px,calc(var(--svh,1svh)*19),200px)}
.code-total{margin-top:6px;font-size:15px;font-weight:700;color:var(--ink)}
.code-total+.browser-note{margin-top:2px}
.app-link{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin-top:6px;padding:6px 14px;border:1px solid var(--ink-a26);border-radius:999px;background:var(--panel-acc);color:var(--ink);font:500 14px/1.4 var(--body)}.app-link strong{font-weight:800;text-decoration:underline;text-underline-offset:4px}.app-link:hover strong{text-decoration-thickness:2px}
.toast-app{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 4px;padding:8px 8px 8px 12px;border:1px dashed var(--ink-a40);border-radius:12px;background:var(--panel);color:var(--ink);font-size:15px;font-weight:500}.toast-app strong{flex:none;padding:6px 16px;border-radius:9px;background:var(--ink);color:var(--panel);font-size:15px}
.official{display:grid;justify-items:center;gap:8px;margin:0 auto 18px}.official-title{font-size:14px;font-weight:700;opacity:.75}.official-links{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.official-links a{display:grid;place-items:center;min-width:44px;height:44px;border:1px solid var(--ink-a1f);border-radius:12px;background:var(--panel-acc);opacity:.85}.official-links a:hover{opacity:1}.official-links .official-app{padding:0 14px;font-size:14px;font-weight:700}
:where(.h700) .app-link{min-height:34px;margin-top:4px;padding:4px 12px;font-size:13px}
/* When the content is taller than the screen, the first screen grows instead of cutting the links off. */
.hero{height:auto;min-height:calc(var(--svh,1svh)*100);overflow:visible}.hero-layout{min-height:calc(var(--svh,1svh)*100);height:auto}.hero-layout>*{flex-shrink:0}
.given-total{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:2px;font-size:14px;font-weight:500;color:var(--ink)}.given-total b{font-weight:800;font-variant-numeric:tabular-nums}
.live-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#2b9c6b;box-shadow:0 0 0 0 #2b9c6b66;animation:live 2s ease-out infinite}
@keyframes live{to{box-shadow:0 0 0 8px #2b9c6b00}}@media(prefers-reduced-motion:reduce){.live-dot{animation:none}}
.given-total+.browser-note{margin-top:2px}
.given-total b{display:inline-block;min-width:3.2em;margin:0 3px;padding:1px 10px;border:1px solid var(--teal-a55);border-radius:9px;background:var(--surface-warm);color:var(--ink);font-size:16px;line-height:1.6;text-align:center;box-shadow:0 2px 6px var(--shade-a14)}
.toast-follow{display:grid;gap:8px;margin-top:4px}.toast-follow[hidden]{display:none}
.follow-main{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;border-radius:14px;background:var(--turquoise);color:#fff;font-size:18px;font-weight:800;box-shadow:0 8px 18px var(--teal-a40)}.follow-main img{filter:brightness(0) invert(1)}
.follow-more{display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px;font-weight:500}.follow-more a{display:grid;place-items:center;width:44px;height:44px;border-radius:12px}.follow-more a:hover{background:var(--ink-a12)}
.toast-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:12px}.toast-actions #toast-again{width:auto;margin-top:0}
.share-button{min-height:52px;border:1.5px solid var(--ink-a40);border-radius:14px;background:var(--panel);color:var(--ink);font-size:17px;font-weight:700;cursor:pointer}
.share-status{margin-top:6px;font-size:14px;text-align:center}.share-status:empty{display:none}
/* The counters keep their space while they load, so the button and links below them do not jump. */
.code-total[hidden]{display:block;visibility:hidden}.given-total[hidden]{display:flex;visibility:hidden}
/* The result card grows downward only, instead of re-centring when a code is added to its list. */
.result-region{place-items:start center;padding-top:max(34px,calc(var(--svh,1svh)*12))}
.code-total{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.new-today{padding:0 8px;border-radius:999px;background:#2b9c6b1f;color:var(--green-ink);font-size:13px;font-weight:700;line-height:1.7}
/* Shadows: three soft, layered levels in the ink colour, so raised things look lifted instead of outlined. */
:root{--shadow-sm:0 1px 2px #1f4e550f,0 4px 12px #1f4e5514;--shadow-md:0 2px 4px #1f4e5512,0 12px 28px #1f4e551f;--shadow-lg:0 6px 14px #1f4e551a,0 32px 70px #1f4e5538}
.hero-group,.app-link,.share-button,.official-links a,.toast-app,.given-total b{box-shadow:var(--shadow-sm)}
.install-banner,.result-card{box-shadow:var(--shadow-md)}
.submit-dialog,dialog{box-shadow:var(--shadow-lg)}
.hero-group,.official-links a,.app-link{transition:box-shadow .2s}
@media(hover:hover){.hero-group:hover,.official-links a:hover,.app-link:hover{box-shadow:var(--shadow-md)}}
/* The copy message sits in the middle of the screen over a dimmed page. */
.toast-backdrop{position:fixed;inset:0;z-index:79;background:var(--shade-a47);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fade-in .2s ease-out}
.toast-backdrop[hidden]{display:none}
.copy-toast{top:50%;bottom:auto;transform:translate(-50%,-50%);border-color:var(--gold-a4d);border-radius:20px;box-shadow:var(--shadow-lg);animation:toast-in .25s cubic-bezier(.2,.8,.2,1)}
@keyframes fade-in{from{opacity:0}}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,-46%) scale(.97)}}
@media(prefers-reduced-motion:reduce){.toast-backdrop,.copy-toast{animation:none}}
/* The follow button: channel logo, then the platform in its own colours on a light card. */
.follow-main{justify-content:flex-start;gap:12px;min-height:64px;padding:8px 12px;border:1px solid var(--ink-a1f);background:var(--surface);color:var(--ink);font-size:17px;box-shadow:var(--shadow-md);text-align:start}
.follow-main .follow-logo{flex:none;width:46px;height:46px;border-radius:12px;object-fit:cover;filter:none}
.follow-text{display:grid;gap:1px;min-width:0}.follow-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:800}
.follow-line img{flex:none;filter:none}.follow-text small{font-size:13px;font-weight:500;opacity:.8}
.follow-more a{background:var(--surface);box-shadow:var(--shadow-sm)}.follow-more a img{width:22px;height:22px}
/* A clear pill at the end of the follow card, in the platform's own colour, so it reads as a button. */
.follow-line{gap:5px;font-weight:500;font-size:15px}.follow-line b{font-size:17px;font-weight:800}.follow-on{opacity:.75}
.follow-text{flex:1}
.follow-cta{flex:none;margin-inline-start:auto;padding:9px 18px;border-radius:999px;color:#fff;font-size:16px;font-weight:800;line-height:1.3;box-shadow:0 4px 10px var(--shade-a26)}
.follow-cta[data-platform="facebook"]{background:#0866FF}.follow-cta[data-platform="youtube"]{background:#FF0000}.follow-cta[data-platform="tiktok"]{background:#000}
.follow-cta[data-platform="instagram"]{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}
.follow-main:active .follow-cta{transform:scale(.96)}
/* A dim without blur: blurring the moving page behind made phones stutter. */
.toast-backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--shade-a52)}
/* The background layers use the largest viewport height, which stays the same while a phone's address bar shows and hides. */
.page-atmosphere,#dust{bottom:auto;height:100vh;height:calc(var(--svh,1lvh)*100 + 160px)}
/* Worked or not, under the code. Quiet so it never competes with copying. */
.code-feedback{margin-top:14px;padding-top:12px;border-top:1px dashed var(--ink-a26);text-align:center}
.feedback-title{font-size:14px;font-weight:700;margin-bottom:8px}
.feedback-row{display:flex;justify-content:center;gap:8px}.feedback-list{display:grid;gap:6px;max-width:320px;margin:0 auto}
.feedback-button{min-height:40px;padding:6px 14px;border:1px solid var(--ink-a33);border-radius:12px;background:var(--surface);color:var(--ink);font:500 14px/1.4 var(--body);box-shadow:var(--shadow-sm);cursor:pointer}
.feedback-button:disabled{opacity:.6;cursor:default}
.report-status{margin-top:6px;font-size:14px;text-align:center}.report-status:empty{display:none}
.submit-result{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border:1px solid var(--teal-a55);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm)}
.submit-result[hidden]{display:none}.submit-result-label{font-size:14px;font-weight:700;opacity:.75}
.submit-result code{flex:1;font:700 19px/1.4 ui-monospace,monospace;color:var(--ink);text-align:left;user-select:all}
.submit-result .button{min-width:0;min-height:42px;padding:6px 16px;font-size:16px}
.result-actions .open-app{order:-1;flex-basis:100%;max-width:420px;background:var(--turquoise);border-color:var(--turquoise);color:var(--panel);text-decoration:none}
/* Code card: the code, one follow account, then copy-and-open as the main action. */
.toast-code{display:block;margin:10px 0 14px;padding:14px 10px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm);text-align:center;font:800 40px/1.2 ui-monospace,"SFMono-Regular",monospace;letter-spacing:1px;color:var(--ink)}
.copy-toast .toast-follow{margin:0 0 14px}
.toast-open{display:flex;width:100%;min-height:58px;font-size:20px;text-decoration:none;background:var(--turquoise);border-color:var(--turquoise);color:var(--panel);box-shadow:0 10px 24px var(--teal-a40)}
.copy-toast .toast-actions{grid-template-columns:1fr 1fr;margin-top:10px}
.copy-toast .toast-actions #toast-again{min-height:52px;font-size:17px}
.toast-fb{margin-top:12px}.toast-fb .code-feedback{margin-top:0}
.toast-foot{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 16px;margin-top:8px}
.toast-foot .link-button{min-height:40px;font-size:14px}
/* Thank-you popup: shown rarely, after the visitor has taken a few codes. */
.thanks{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:95;width:min(400px,calc(100% - 40px));padding:34px 24px 26px;border-radius:26px;text-align:center;color:var(--ink);background:linear-gradient(180deg,var(--panel),var(--bg-soft));box-shadow:var(--shadow-lg);animation:toast-in .3s cubic-bezier(.2,.8,.2,1)}
.thanks[hidden]{display:none}.thanks:focus{outline:0}
.thanks-backdrop{z-index:94}
.thanks-x{position:absolute;top:12px;left:12px;width:44px;height:44px;border:0;border-radius:12px;background:var(--ink-a14);color:var(--ink);font-size:28px;line-height:1;cursor:pointer}
.thanks-logo{display:block;width:84px;height:84px;margin:0 auto 12px;border-radius:20px;object-fit:cover;box-shadow:var(--shadow-sm)}
.thanks h2{font:800 26px/1.35 var(--heading)}
.thanks p{margin:8px 0 18px;font-size:17px;line-height:1.7}
.thanks-follow{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-md);font:800 19px/1.3 var(--heading);color:var(--ink);text-decoration:none}
.thanks-follow:active{transform:scale(.98)}
@media(prefers-reduced-motion:reduce){.thanks{animation:none}}
.thanks .thanks-note{display:inline-block;margin:6px 0 0;padding:2px 14px;border-radius:999px;background:var(--teal-a1f);color:var(--teal-ink);font:700 15px/1.7 var(--heading)}
.ts-box{position:fixed;left:0;bottom:0;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.support-line{font-size:14px;margin:0 auto 6px;max-width:460px}
.toast-support{margin-top:6px;font-size:13px;text-align:center;opacity:.85}
.support-ways{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}.support-way{display:grid;gap:6px;padding:14px;border:1px solid var(--gold-a40);border-radius:14px;background:var(--surface-a99)}
.support-name{font-weight:700;font-size:17px}.support-way small{font-size:14px;line-height:1.6;opacity:.8}
.support-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.support-row code{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;font:600 15px/1.5 var(--mono);padding:8px 10px;border-radius:10px;background:var(--ink-a0f);text-align:left}
.support-way .button{min-height:44px;padding:8px 16px;font-size:15px}.support-way .secondary{justify-self:start}.support-soon{opacity:.5}
#support-dialog .feedback:not(:empty){margin-top:12px}
.support-impact{display:flex;gap:10px;margin:14px 0 4px}.support-impact p{flex:1;display:grid;justify-items:center;padding:10px 6px;border-radius:14px;background:var(--ink);color:var(--panel);text-align:center}.support-impact b{font:800 24px/1.3 var(--heading);color:var(--gold-on-ink)}.support-impact span{font-size:13px;opacity:.9}
.support-cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;margin:6px 4px 0;padding:8px 22px;border:1.5px solid var(--gold);border-radius:999px;background:linear-gradient(180deg,var(--cream),var(--cream-deep));color:var(--ink);font:700 15px/1.4 var(--heading);box-shadow:0 0 0 0 var(--gold-a66),inset 0 1px 0 var(--surface);cursor:pointer;transition:transform .18s}
.support-cta:before{content:"🤍";font-size:14px}.support-cta:hover{transform:translateY(-2px)}.support-cta:active{transform:scale(.97)}
.support-line,.toast-support{display:flex;flex-direction:column;align-items:center}
/* How many shared the reward, on its own line above the hadith; the number sits in a gold pill like the «شارك الأجر» button. */
.supporters-count{display:block;margin:0 0 4px;font:700 15px/1.6 var(--body);color:inherit;opacity:1}.supporters-count[hidden]{display:none}
.sc-n,.sr-n{display:inline-block;min-width:1.8em;padding:0 10px;border-radius:999px;background:var(--gold);color:#13262A;font-weight:800;text-align:center}
@media (prefers-reduced-motion:no-preference){/* Three slow breaths (six half-cycles) once the button comes into view, then still. */
.support-cta.in-view{animation:support-breathe 2.4s cubic-bezier(.45,0,.55,1) 6 alternate}.support-cta.in-view:after{animation:support-sheen 2.4s cubic-bezier(.45,0,.55,1) 6 alternate}}
.support-cta{position:relative;overflow:hidden;isolation:isolate}.support-cta:after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:40%;background:linear-gradient(100deg,transparent,#fffbefcc,transparent);transform:skewX(-18deg);z-index:-1;pointer-events:none}
@keyframes support-breathe{from{transform:scale(1);box-shadow:0 0 0 0 var(--gold-a00),0 2px 6px var(--gold-a22),inset 0 1px 0 var(--surface);border-color:var(--gold-aa6)}to{transform:scale(1.045);box-shadow:0 0 0 5px var(--gold-a26),0 0 22px var(--gold-a59),inset 0 1px 0 var(--surface);border-color:var(--gold)}}
@keyframes support-sheen{from{left:-30%}to{left:90%}}
.support-qr{display:none}@media (min-width:760px) and (hover:hover){.support-qr{display:flex;align-items:center;gap:12px;margin-top:4px}.support-qr img{width:116px;height:116px;border-radius:10px;border:1px solid var(--gold-a40)}}


.opinion-line{font-size:14px;margin:0 auto 4px}.opinion-line .plain-button{min-height:40px;font-weight:700}
.opinion-after{display:block;margin:8px auto 0;min-height:40px;padding:6px 16px;border:1px dashed var(--gold);border-radius:999px;background:var(--cream);color:var(--ink);font:700 14px/1.4 var(--heading);cursor:pointer}
.opinion-rating{display:flex;gap:8px;margin:16px 0 0;padding:0;border:0}.opinion-rating legend{font-weight:700;font-size:15px;margin-bottom:8px;padding:0}
.opinion-rating label{flex:1;cursor:pointer}.opinion-rating input{position:absolute;opacity:0;pointer-events:none}
.opinion-rating span{display:grid;justify-items:center;gap:2px;padding:10px 4px;border:1.5px solid var(--ink-a26);border-radius:14px;background:var(--surface);font-size:13px;font-weight:600;transition:border-color .15s,background .15s,transform .15s}
.opinion-rating b{font-size:28px;line-height:1.2;font-weight:400}
.opinion-rating input:checked+span{border-color:var(--gold);background:var(--cream);transform:translateY(-2px)}.opinion-rating input:focus-visible+span{outline:3px solid var(--ink);outline-offset:3px}
.opinion-field{display:grid;gap:4px;margin-top:14px;font-size:14px;font-weight:600}.opinion-field small{font-weight:400;opacity:.7}
.opinion-field small.opinion-hint{opacity:.85;font-size:12.5px;line-height:1.6}
.opinion-field textarea,.opinion-field input{width:100%;padding:10px 12px;border:1px solid var(--ink-a40);border-radius:12px;background:var(--surface);color:var(--ink);font:400 16px/1.6 var(--body);resize:vertical}
.opinion-consent{display:flex;align-items:flex-start;gap:8px;margin:14px 0;font-size:14px;line-height:1.6;cursor:pointer}.opinion-consent input{width:20px;height:20px;margin-top:3px;flex:none;accent-color:var(--ink)}
#opinion-form .button{width:100%}#opinion-dialog .feedback:not(:empty){margin-top:10px;text-align:center}
.niyyah-note,.submit-dialog>p.niyyah-note{margin-top:10px;padding:8px 12px;border-radius:12px;background:var(--cream);border:1px solid var(--gold-a4d);color:var(--ink);font:600 14px/1.6 var(--heading);text-align:center}.niyyah-share{margin:12px 0 0;padding:6px 10px;font-size:13px}
.voices{position:relative;z-index:1;padding-block:24px 8px;text-align:center}.voices h2{font-size:clamp(24px,4vw,34px);margin-bottom:14px}
.voices-sub{margin:-6px auto 18px;font-size:15px;color:var(--ink-soft)}
.voices-write{display:grid;justify-items:center;gap:6px;margin:0 0 20px}.voices-write small{font-size:14px;color:var(--ink-soft)}
.voices-score{max-width:620px;margin:0 auto 22px;padding:20px 22px;border-radius:20px;background:var(--panel);text-align:start;display:grid;gap:10px}
/* On wide screens the rating card runs the width of the wall, as one band: share on one side, bars on the other. */
@media(min-width:980px){.voices-score{max-width:none;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:32px;padding:22px 30px}}
.score-top{display:flex;align-items:baseline;gap:12px}.score-top b{font:800 clamp(44px,9vw,60px)/1 var(--heading);color:var(--turquoise)}.score-top span{font:700 17px/1.4 var(--heading)}
.score-bars{list-style:none;margin:0;padding:0;display:grid;gap:7px}.score-bars li{display:grid;grid-template-columns:6.5em minmax(0,1fr) 2.5em;align-items:center;gap:10px;font-size:15px}
.score-bar{height:8px;border-radius:99px;background:var(--bg-soft);overflow:hidden}.score-bar i{display:block;height:100%;min-width:4px;border-radius:inherit;background:var(--gold)}.score-bars li:first-child .score-bar i{background:var(--turquoise)}
.score-bars em{font-style:normal;text-align:end;color:var(--ink-soft)}.score-top span{max-width:14em}
.score-line{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin:-8px 0 16px;font-size:14px;color:var(--ink-soft)}.score-line b{color:var(--ink);font-family:var(--heading)}
/* A waterfall wall: one column on phones, more as the screen widens. It opens folded with a fade. */
.voices-list{list-style:none;margin:0;padding:0;columns:1;column-gap:14px;text-align:start}
@media(min-width:620px){.voices-list{columns:2}}@media(min-width:980px){.voices-list{columns:3}}
/* The fold sits on a wrapper: a column layout with a fixed height would spill into extra columns instead. */
/* The fold fades the cards themselves, so the pattern behind the section stays visible. */
.voices-wall.collapsed{max-height:640px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 calc(100% - 140px),transparent);mask-image:linear-gradient(#000 calc(100% - 140px),transparent)}
.voices-list li{break-inside:avoid;margin:0 0 14px;display:grid;gap:10px;padding:16px 18px 14px;border:1px solid var(--gold-a26);border-radius:16px;background:var(--panel)}
.voices-list li.dua{background:var(--cream-soft);border-color:var(--gold-a59)}.voices-list li.dua .voice-text{font:600 17px/1.9 var(--heading)}
.voice-reply{margin:2px 0 0;padding:8px 12px;border-radius:12px;background:var(--gold-a1a);border-inline-start:3px solid var(--gold-a55);font:500 14px/1.7 var(--body);color:var(--ink)}.voice-reply b{color:var(--gold-ink);font-family:var(--heading)}.voice-reply a{color:var(--gold-ink);text-decoration:underline;word-break:break-all}
.voice-when{font:400 12px/1.5 var(--body);color:var(--ink-soft)}
.voice-from{justify-self:start;padding:2px 10px;border-radius:999px;background:var(--gold-a1a);border:1px solid var(--gold-a55);color:var(--gold-ink);font:700 12px/1.6 var(--heading);text-decoration:none}
.voices-more{display:block;margin:18px auto 0;padding:11px 26px;border-radius:999px;border:1.5px solid var(--ink);background:none;color:var(--ink);font:700 15px var(--heading);cursor:pointer}
.voice-text{font:500 16px/1.8 var(--body);color:var(--ink)}.voice-who{font:700 13px/1.5 var(--heading);color:var(--gold-ink)}
.support-voices{display:grid;gap:8px;margin:12px 0 4px}.support-voices figure{margin:0;padding:10px 12px;border-radius:12px;background:var(--cream);border:1px solid var(--gold-a33)}.support-voices .voice-text{font-size:14px}.support-voices .voice-who{font-size:12px}
.used-help{display:grid;justify-items:center;gap:8px;margin-top:8px;padding:10px 12px;border-radius:12px;background:var(--cream);border:1px solid var(--gold-a4d);text-align:center;font-size:14px;line-height:1.7}.used-help .feedback-button{background:var(--ink);color:var(--panel);border-color:var(--ink);font-weight:700}
.card-notes{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.card-notes .niyyah-share{flex:1 1 180px;margin:0}
.card-opinion{flex:1 1 180px;min-height:40px;padding:6px 10px;border:1px dashed var(--gold);border-radius:12px;background:var(--surface);color:var(--ink);font:700 13px/1.5 var(--heading);cursor:pointer}

/* On wide screens the floating button sits in the corner, clear of the headings it used to cover. */
@media(min-width:701px){.code-pill{left:auto;right:max(24px,env(safe-area-inset-right));transform:none}}
/* Small phones with the browser bar showing: the photo and the account cards shrink a little, so the accounts stay first and «هات كود» still fits. */
@media(max-width:700px){:where(.h620) .hero-portrait,:where(.h620).banner-on .hero-portrait{height:84px}:where(.h620) .hero-layout{gap:5px}:where(.h620) .hero-group{padding-block:3px}:where(.h620) .group-logo{width:40px;height:40px}:where(.h620) .group-links a{width:36px;height:32px}}
/* The two counters under «هات كود» sit side by side as small tiles: the number large, what it counts underneath. */
.hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(100%,380px);margin:10px auto 0}
.hero-stats .stat-cell{display:grid;justify-items:center;align-content:center;gap:1px;margin:0;padding:7px 6px 8px;border:1px solid var(--gold-a33);border-radius:14px;background:var(--panel-acc);text-align:center}
.hero-stats .stat-cell>b{display:flex;align-items:center;gap:6px;min-width:0;margin:0;padding:0;border:0;background:none;box-shadow:none;font:800 20px/1.3 var(--heading);color:var(--ink);font-variant-numeric:tabular-nums}
.stat-label{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 6px;font-size:13px;font-weight:500;line-height:1.5;color:var(--ink-soft)}
.stat-label .new-today{font-size:12px;padding:0 7px}
/* «قالوا عن الموقع»: title and write button on one side, the rating on the other, then the totals as three tiles above the wall. */
.voices-head{display:grid;gap:18px;margin-bottom:16px;text-align:start}
.voices-copy{display:grid;gap:12px;justify-items:start}.voices-copy h2{margin:0}.voices-copy .voices-sub{margin:0}
.voices-copy .voices-write{justify-items:start;margin:0}
.voices-head .voices-score,.voices-head .voices-score[hidden]{max-width:none;margin:0}
@media(min-width:760px){.voices-head{grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:center;gap:30px}}
@media(min-width:980px){.voices-head .voices-score{grid-template-columns:none;gap:10px;padding:20px 22px}}
.score-line{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;margin:0 0 18px;padding:0;border:0}.score-line[hidden]{display:none}
.score-line span{display:block;padding:10px 8px;border:1px solid var(--gold-a33);border-radius:14px;background:var(--panel-acc);text-align:center;font-size:12.5px;line-height:1.5;color:var(--ink-soft)}
.score-line b{display:block;font:800 clamp(16px,4.4vw,22px)/1.3 var(--heading);color:var(--ink)}.score-line span:first-child b{color:var(--turquoise)}
.support-band{position:relative;z-index:1;padding-block:22px 4px;text-align:center}
/* Support dialog: who receives the money, one reassurance line, and the form for those who already sent something. */
.supporters-thanks{margin:6px 0 10px;padding:8px 12px;border-radius:12px;background:var(--teal-a1a);color:var(--ink);font-size:14px;line-height:1.7}
.support-why b{color:var(--ink)}.support-free{margin-top:10px;font-size:13px;color:var(--ink-soft);text-align:center}
.supporter-form{display:grid;gap:8px;min-width:0;max-width:100%;margin-top:14px;padding-top:14px;border-top:1px solid var(--gold-a33)}.supporter-form>p{font-size:14px;line-height:1.7}
.supporter-row{display:flex;gap:8px;min-width:0}.supporter-row .button{flex:none}.supporter-row input{flex:1;width:100%;min-width:0;padding:10px 12px;border:1px solid var(--gold-a66);border-radius:12px;background:var(--surface);font:inherit;font-size:15px;color:var(--ink)}
.support-after{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;margin:8px 0 0;font-size:14px;line-height:1.7;text-align:center}
.support-after .support-cta{margin:0;min-height:38px;padding:6px 18px}

/* The reminder of the day above «هات كود». */
.niyyah-label{color:var(--gold-ink);font-weight:700}.niyyah-label:after{content:"\00a0·"}
/* Payment cards: one main action per card at full width; the address or number with a small copy button on one row under it. */
.support-way{gap:8px;padding:14px 14px 12px;background:var(--surface-warm)}
.support-way .support-main{display:flex;justify-content:center;width:100%;justify-self:stretch;min-height:48px;font-size:16px}
.support-way small{opacity:1;color:var(--ink-soft);font-size:13px}
.support-row{flex-wrap:nowrap}.support-row code{font-size:14px;overflow-wrap:normal;word-break:normal}
.support-row .support-copy{flex:none;min-height:40px;padding:6px 14px;font-size:14px}
/* Support dialog top: the hadith, then one line with this visitor's codes out of all handed out. */
.support-hadith{margin:10px 0 0;padding:12px 14px;border-radius:14px;background:var(--cream);border:1px solid var(--gold-a4d);text-align:center}
.support-hadith p{font:700 17px/1.8 var(--heading);color:var(--ink)}.support-hadith cite{display:block;font-style:normal;font-size:12px;color:var(--gold-ink)}
#support-impact.support-impact{display:block;margin:10px 0 0;font-size:14px;line-height:1.7;color:var(--ink-soft);text-align:center}#support-impact[hidden]{display:none}
/* Footer: the owner and his two channels on one side, quick links and support on the other, then one quiet bottom bar. */
.site-footer{display:grid;gap:22px;padding-block:40px 90px;text-align:start}
.footer-top{display:grid;gap:22px}
@media(min-width:860px){.footer-top{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:36px;align-items:start}}
.footer-owner{display:grid;gap:12px}
.owner-head{display:flex;align-items:center;gap:12px}.owner-photo{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 30%;border:2px solid var(--gold-a80);background:var(--bg-soft)}
.owner-head h2{margin:0;font:800 21px/1.3 var(--heading)}.owner-head p{font-size:14px;line-height:1.6;color:var(--ink-soft)}
.footer-groups{display:grid;gap:10px}.footer-groups .hero-group{margin:0}
.owner-note{font-size:14px;line-height:1.7;color:var(--ink-soft)}
.footer-quick h2{margin:0 0 10px;font:700 15px var(--heading);color:var(--gold-ink)}
.footer-quick ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.footer-quick li>button,.footer-quick li>a{display:flex;align-items:center;gap:8px;width:100%;min-height:46px;padding:8px 12px;border:1px solid var(--gold-a33);border-radius:12px;background:var(--panel-acc);color:var(--ink);font:600 14.5px/1.4 var(--body);text-align:start;text-decoration:none;cursor:pointer}
.footer-quick li>button:hover,.footer-quick li>a:hover{border-color:var(--gold-a80)}
.footer-quick li>button:disabled{opacity:.6;cursor:wait}
.footer-quick .footer-support{margin:14px 0 0;max-width:none;align-items:flex-start;text-align:start}
.footer-bar{display:grid;gap:12px;padding-top:16px;border-top:1px solid var(--gold-a33)}
.footer-bar .official{justify-items:start;margin:0}
.footer-legal{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;line-height:1.7;color:var(--ink-soft)}
@media(min-width:860px){.footer-bar{grid-template-columns:auto 1fr;align-items:center}.footer-bar .official{grid-auto-flow:column;align-items:center}.footer-legal{justify-content:flex-end}}
@media(min-width:860px){.footer-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Design pass for «قالوا عن الموقع» and the footer: one 14px gutter shared by every row and column, so the header,
   the totals, the wall and the footer all line up on the same columns; three surface levels (flat tinted tile,
   resting card with a small shadow, the rating card raised a step); and the footer on its own soft band. */
:root{--gutter:14px;--card-bg:#fffaf1;--card-line:#c4933a2e;--tile-bg:#fff9ee99}
.voices{padding-block:48px 28px}
.voices-head{column-gap:var(--gutter);row-gap:20px;margin-bottom:var(--gutter)}
@media(min-width:620px){.voices-head{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}}
@media(min-width:980px){.voices-head{grid-template-columns:repeat(3,minmax(0,1fr))}.voices-copy{grid-column:span 2}}
.voices-copy{align-content:center}
.voices-head .voices-score{padding:20px 22px;border:1px solid var(--gold-a40);border-radius:18px;background:var(--card-bg);box-shadow:var(--shadow-md)}
.score-line{gap:var(--gutter);margin-bottom:var(--gutter)}
.score-line span{padding:12px 10px;border-color:var(--card-line);border-radius:16px;background:var(--tile-bg)}
.voices-list{column-gap:var(--gutter)}
.voices-list li{margin-bottom:var(--gutter);padding:18px 20px 14px;border-color:var(--card-line);border-radius:18px;background:var(--card-bg);box-shadow:var(--shadow-sm)}
.voices-list li.dua{background:var(--cream-soft)}
.voices-more{margin-top:20px}
/* Footer band: full width behind the content, without changing the content width. */
.site-footer{margin-top:32px;padding-block:44px 96px;background:#f5ecdaf0;box-shadow:0 0 0 100vmax #f5ecdaf0;clip-path:inset(0 -100vmax);border-top:1px solid #c4933a33}
.footer-top{column-gap:var(--gutter);row-gap:28px}
@media(min-width:620px){.footer-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:980px){.footer-top{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-owner{grid-column:span 2}}
.footer-groups{gap:var(--gutter)}
.footer-groups .hero-group{border-color:var(--card-line);border-radius:18px;background:var(--card-bg);box-shadow:var(--shadow-sm)}
.owner-head{min-height:64px}
.footer-quick h2{display:flex;align-items:center;min-height:64px;margin:0 0 12px;font:800 21px/1.3 var(--heading);color:var(--ink)}
.footer-owner{gap:12px}
.footer-quick ul{gap:var(--gutter)}
.footer-quick li>button,.footer-quick li>a{min-height:50px;border-color:var(--card-line);border-radius:14px;background:var(--card-bg)}
@media(hover:hover){.footer-quick li>button:hover,.footer-quick li>a:hover{box-shadow:var(--shadow-sm)}}
.footer-bar{padding-top:20px}
/* Floating cards: every card in «قالوا عن الموقع» and the footer sits a step above the pattern. The rating card
   spans two columns and lays out as one band; the support ask sits alone, centred, under the footer columns. */
:root{--float:0 2px 6px #1f4e5512,0 14px 30px #1f4e5524;--float-high:0 4px 10px #1f4e5514,0 24px 48px #1f4e552e}
@media(min-width:980px){.voices-copy{grid-column:span 1}.voices-head .voices-score{grid-column:span 2;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:32px}}
.voices-head .voices-score{box-shadow:var(--float-high)}
.score-line span{background:var(--card-bg);box-shadow:var(--float)}
.voices-list li{box-shadow:var(--float)}
.footer-groups .hero-group,.footer-quick li>button,.footer-quick li>a{box-shadow:var(--float)}
@media(hover:hover){.footer-quick li>button:hover,.footer-quick li>a:hover{box-shadow:var(--float-high)}}
.footer-top .footer-support{grid-column:1/-1;justify-self:center;align-items:center;margin:6px 0 0;text-align:center}
/* Dark footer: the band takes the site's ink green, so the page clearly ends; cards keep their light face with a thin edge instead of a shadow. */
.site-footer{--on-dark:#fff9ee;--on-dark-soft:#cfe0dfcc;color:var(--on-dark);background:var(--deep);box-shadow:0 0 0 100vmax var(--deep);border-top:0}
.site-footer .owner-head h2,.site-footer .footer-quick h2{color:var(--on-dark)}
.site-footer .owner-head p,.site-footer .owner-note,.site-footer .footer-legal,.site-footer .official-title,.site-footer .footer-support{color:var(--on-dark-soft)}
.site-footer .owner-photo{border-color:#e7c27e}
.site-footer .footer-groups .hero-group,.site-footer .footer-quick li>button,.site-footer .footer-quick li>a{border-color:#fff9ee33;box-shadow:0 1px 0 #fff9ee14,0 10px 24px #0000002e}
.site-footer .footer-bar{border-top-color:#fff9ee26}
.site-footer .official-links a{background:#fff9ee14;border-color:#fff9ee33;opacity:1}
.site-footer .official-links img{filter:invert(1) brightness(1.6)}
.site-footer .hero-group{color:var(--ink)}
/* The dark band also runs below the footer, so the strip a phone shows under the last line (its gesture bar or the page's bottom padding) is green, not beige. */
.site-footer{clip-path:inset(0 -100vmax -100vmax)}

/* An aperture that has fully opened stops clipping its scene. */
.portal-active .portal-open,.portal-active #closing.portal-open{clip-path:none}
/* Opinion or problem switch at the top of the opinion dialog, and the guide shown for a problem. */
.opinion-kind{display:flex;gap:8px;margin:14px 0 0;padding:0;border:0}
.opinion-kind label{flex:1;cursor:pointer}.opinion-kind input{position:absolute;opacity:0;pointer-events:none}
.opinion-kind span{display:block;padding:9px 6px;border:1.5px solid var(--ink-a26);border-radius:12px;background:var(--surface);text-align:center;font:700 15px/1.4 var(--heading)}
.opinion-kind input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--panel)}
.opinion-kind input:focus-visible+span{outline:3px solid var(--gold);outline-offset:3px}
.problem-guide{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--cream);border:1px solid var(--gold-a4d);font-size:14px;line-height:1.7}
.problem-guide ul{margin:4px 0 6px;padding-inline-start:20px}.problem-guide a{color:var(--ink);font-weight:700}
/* A new code in the card: the box clips the falling and rising letters, a gold light sweeps across once, and a count under it says which code this is today. */
.toast-code{position:relative;overflow:hidden;perspective:500px;transition:box-shadow .3s}
.toast-code .ch{display:inline-block;transform-origin:50% 60%;backface-visibility:hidden}
.toast-code.spinning{box-shadow:0 0 0 2px var(--gold-a55),var(--shadow-sm)}
.toast-code.spinning .ch:nth-child(-n+3){opacity:.35}
.toast-code.sweep{animation:code-glow 1.1s ease-out}
.toast-code.sweep:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,#f3d999b3 48%,#fff8 52%,transparent 70%);transform:translateX(-120%);animation:code-sweep .9s .35s ease-out forwards;pointer-events:none}
@keyframes code-sweep{to{transform:translateX(120%)}}
@keyframes code-glow{0%,100%{box-shadow:var(--shadow-sm)}35%{box-shadow:0 0 0 3px var(--gold),0 0 26px var(--gold-a80)}}
.toast-count{margin:-8px 0 10px;text-align:center;font:600 13px/1.5 var(--body);color:var(--ink-soft)}
.toast-note:empty{display:none}.toast-note{margin:-4px 0 10px;padding:8px 12px;border-radius:12px;background:#fbe9dc;color:#8a3b14;font-size:14px;text-align:center}
@media(prefers-reduced-motion:reduce){.toast-code.sweep,.toast-code.sweep:after{animation:none}}
/* One line under the code: the code count, or the short «اشتغل؟» question in its place. */
.toast-line{display:grid;min-height:30px;margin:-8px 0 10px;place-items:center}
.toast-line .toast-count{margin:0}
.quick-ask{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;font:700 14px/1.5 var(--heading);color:var(--ink)}
/* After «استُخدم قبل كده»: the words on one side (wrapping on small phones), the install button at the far end. */
.quick-ask.used{flex-wrap:nowrap;justify-content:space-between;gap:12px;text-align:start}.quick-ask.used #quick-question{flex:1;min-width:0}
.quick-install{flex:none;min-height:34px;padding:4px 16px;border-radius:999px;border:0;background:var(--gold);color:#13262A;font:700 14px var(--heading);cursor:pointer}.quick-install[hidden]{display:none}
.quick-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.quick-buttons button{min-height:32px;padding:2px 12px;border:1px solid var(--ink-a33);border-radius:999px;background:var(--surface);color:var(--ink);font:600 13px/1.4 var(--body);cursor:pointer}
#quick-main button{min-width:44px;font-size:17px}
.quick-buttons button:disabled{opacity:.5}
/* theme-tokens:start *//* bg #EBDDC3 #0F1D1F *//* bg-soft #F5ECDA #15272A *//* bg-soft-a80 #F5ECDA80 #15272A80 *//* cream #FDF3DC #2A2619 *//* cream-deep #F3DFB4 #3A3220 *//* cream-soft #FFF5DF #2D2819 *//* glow-mint #D6E9DC #143331 *//* gold #C4933A #D4A54C *//* gold-a00 #C4933A00 #D4A54C00 *//* gold-a1a #C4933A1A #D4A54C1A *//* gold-a22 #C4933A22 #D4A54C22 *//* gold-a26 #C4933A26 #D4A54C26 *//* gold-a33 #C4933A33 #D4A54C33 *//* gold-a40 #C4933A40 #D4A54C40 *//* gold-a45 #C4933A45 #D4A54C45 *//* gold-a4d #C4933A4D #D4A54C4D *//* gold-a55 #C4933A55 #D4A54C55 *//* gold-a59 #C4933A59 #D4A54C59 *//* gold-a66 #C4933A66 #D4A54C66 *//* gold-a80 #C4933A80 #D4A54C80 *//* gold-aa6 #C4933AA6 #D4A54CA6 *//* gold-ink #8A6420 #E3BC6C *//* gold-on-ink #F0D9A6 #8A6420 *//* green-ink #1D7A52 #74D3A6 *//* ink #1F4E55 #DDEBE7 *//* ink-a0f #1F4E550F #DDEBE70F *//* ink-a12 #1F4E5512 #DDEBE712 *//* ink-a14 #1F4E5514 #DDEBE714 *//* ink-a1a #1F4E551A #DDEBE71A *//* ink-a1f #1F4E551F #DDEBE71F *//* ink-a26 #1F4E5526 #DDEBE726 *//* ink-a33 #1F4E5533 #DDEBE733 *//* ink-a40 #1F4E5540 #DDEBE740 *//* ink-a4c #1F4E554C #DDEBE74C *//* ink-a59 #1F4E5559 #DDEBE759 *//* ink-a66 #1F4E5566 #DDEBE766 *//* ink-soft #3F6368 #A9C3BF *//* panel #FFF9EE #182B2E *//* panel-a4d #FFF9EE4D #182B2E4D *//* panel-a66 #FFF9EE66 #182B2E66 *//* panel-a99 #FFF9EE99 #182B2E99 *//* panel-acc #FFF9EECC #182B2ECC *//* panel-ae6 #FFF9EEE6 #182B2EE6 *//* panel-aeb #FFF9EEEB #182B2EEB *//* shade-a12 #1F4E5512 #00000012 *//* shade-a14 #1F4E5514 #00000014 *//* shade-a1a #1F4E551A #0000001A *//* shade-a24 #1F4E5524 #00000024 *//* shade-a26 #1F4E5526 #00000026 *//* shade-a29 #1F4E5529 #00000029 *//* shade-a2e #1F4E552E #0000002E *//* shade-a33 #1F4E5533 #00000033 *//* shade-a40 #1F4E5540 #00000040 *//* shade-a47 #1F4E5547 #00000047 *//* shade-a52 #1F4E5552 #00000052 *//* shade-a66 #1F4E5566 #00000066 *//* surface #FFFFFF #1F3437 *//* surface-a99 #FFFFFF99 #1F343799 *//* surface-warm #FFFDF8 #1D3134 *//* teal-a1a #2B9C9B1A #3FB8B51A *//* teal-a1f #2B9C9B1F #3FB8B51F *//* teal-a26 #2B9C9B26 #3FB8B526 *//* teal-a33 #2B9C9B33 #3FB8B533 *//* teal-a40 #2B9C9B40 #3FB8B540 *//* teal-a55 #2B9C9B55 #3FB8B555 *//* teal-ink #1D7A7A #74CFCB *//* turquoise #2B9C9B #3FB8B5 */
:root{--bg:#EBDDC3;--bg-soft:#F5ECDA;--bg-soft-a80:#F5ECDA80;--cream:#FDF3DC;--cream-deep:#F3DFB4;--cream-soft:#FFF5DF;--deep:#1F4E55;--glow-mint:#D6E9DC;--gold:#C4933A;--gold-a00:#C4933A00;--gold-a1a:#C4933A1A;--gold-a22:#C4933A22;--gold-a26:#C4933A26;--gold-a33:#C4933A33;--gold-a40:#C4933A40;--gold-a45:#C4933A45;--gold-a4d:#C4933A4D;--gold-a55:#C4933A55;--gold-a59:#C4933A59;--gold-a66:#C4933A66;--gold-a80:#C4933A80;--gold-aa6:#C4933AA6;--gold-ink:#8A6420;--gold-on-ink:#F0D9A6;--green-ink:#1D7A52;--ink:#1F4E55;--ink-a0f:#1F4E550F;--ink-a12:#1F4E5512;--ink-a14:#1F4E5514;--ink-a1a:#1F4E551A;--ink-a1f:#1F4E551F;--ink-a26:#1F4E5526;--ink-a33:#1F4E5533;--ink-a40:#1F4E5540;--ink-a4c:#1F4E554C;--ink-a59:#1F4E5559;--ink-a66:#1F4E5566;--ink-soft:#3F6368;--on-deep:#FFF9EE;--panel:#FFF9EE;--panel-a4d:#FFF9EE4D;--panel-a66:#FFF9EE66;--panel-a99:#FFF9EE99;--panel-acc:#FFF9EECC;--panel-ae6:#FFF9EEE6;--panel-aeb:#FFF9EEEB;--shade-a12:#1F4E5512;--shade-a14:#1F4E5514;--shade-a1a:#1F4E551A;--shade-a24:#1F4E5524;--shade-a26:#1F4E5526;--shade-a29:#1F4E5529;--shade-a2e:#1F4E552E;--shade-a33:#1F4E5533;--shade-a40:#1F4E5540;--shade-a47:#1F4E5547;--shade-a52:#1F4E5552;--shade-a66:#1F4E5566;--surface:#FFFFFF;--surface-a99:#FFFFFF99;--surface-warm:#FFFDF8;--teal-a1a:#2B9C9B1A;--teal-a1f:#2B9C9B1F;--teal-a26:#2B9C9B26;--teal-a33:#2B9C9B33;--teal-a40:#2B9C9B40;--teal-a55:#2B9C9B55;--teal-ink:#1D7A7A;--turquoise:#2B9C9B}
:root[data-theme=dark]{color-scheme:dark;--bg:#0F1D1F;--bg-soft:#15272A;--bg-soft-a80:#15272A80;--card-bg:#1D3134;--card-line:#D4A54C2E;--cream:#2A2619;--cream-deep:#3A3220;--cream-soft:#2D2819;--deep:#091517;--float:0 2px 6px #00000033,0 14px 30px #0000004D;--float-high:0 4px 10px #00000038,0 24px 48px #00000059;--glow-mint:#143331;--gold:#D4A54C;--gold-a00:#D4A54C00;--gold-a1a:#D4A54C1A;--gold-a22:#D4A54C22;--gold-a26:#D4A54C26;--gold-a33:#D4A54C33;--gold-a40:#D4A54C40;--gold-a45:#D4A54C45;--gold-a4d:#D4A54C4D;--gold-a55:#D4A54C55;--gold-a59:#D4A54C59;--gold-a66:#D4A54C66;--gold-a80:#D4A54C80;--gold-aa6:#D4A54CA6;--gold-ink:#E3BC6C;--gold-on-ink:#8A6420;--green-ink:#74D3A6;--ink:#DDEBE7;--ink-a0f:#DDEBE70F;--ink-a12:#DDEBE712;--ink-a14:#DDEBE714;--ink-a1a:#DDEBE71A;--ink-a1f:#DDEBE71F;--ink-a26:#DDEBE726;--ink-a33:#DDEBE733;--ink-a40:#DDEBE740;--ink-a4c:#DDEBE74C;--ink-a59:#DDEBE759;--ink-a66:#DDEBE766;--ink-soft:#A9C3BF;--on-deep:#FFF9EE;--panel:#182B2E;--panel-a4d:#182B2E4D;--panel-a66:#182B2E66;--panel-a99:#182B2E99;--panel-acc:#182B2ECC;--panel-ae6:#182B2EE6;--panel-aeb:#182B2EEB;--paper:#F3E9D5;--paper-ink:#1F4E55;--shade-a12:#00000012;--shade-a14:#00000014;--shade-a1a:#0000001A;--shade-a24:#00000024;--shade-a26:#00000026;--shade-a29:#00000029;--shade-a2e:#0000002E;--shade-a33:#00000033;--shade-a40:#00000040;--shade-a47:#00000047;--shade-a52:#00000052;--shade-a66:#00000066;--shadow-lg:0 6px 14px #00000040,0 32px 70px #00000066;--shadow-md:0 2px 4px #00000033,0 12px 28px #00000047;--shadow-sm:0 1px 2px #0000002E,0 4px 12px #00000038;--surface:#1F3437;--surface-a99:#1F343799;--surface-warm:#1D3134;--teal-a1a:#3FB8B51A;--teal-a1f:#3FB8B51F;--teal-a26:#3FB8B526;--teal-a33:#3FB8B533;--teal-a40:#3FB8B540;--teal-a55:#3FB8B555;--teal-ink:#74CFCB;--tile-bg:#18292B99;--turquoise:#3FB8B5}
:root[data-theme=dark] .notebook{--bg:#EBDDC3;--bg-soft:#F5ECDA;--bg-soft-a80:#F5ECDA80;--cream:#FDF3DC;--cream-deep:#F3DFB4;--cream-soft:#FFF5DF;--glow-mint:#D6E9DC;--gold:#C4933A;--gold-a00:#C4933A00;--gold-a1a:#C4933A1A;--gold-a22:#C4933A22;--gold-a26:#C4933A26;--gold-a33:#C4933A33;--gold-a40:#C4933A40;--gold-a45:#C4933A45;--gold-a4d:#C4933A4D;--gold-a55:#C4933A55;--gold-a59:#C4933A59;--gold-a66:#C4933A66;--gold-a80:#C4933A80;--gold-aa6:#C4933AA6;--gold-ink:#8A6420;--gold-on-ink:#F0D9A6;--green-ink:#1D7A52;--ink:#1F4E55;--ink-a0f:#1F4E550F;--ink-a12:#1F4E5512;--ink-a14:#1F4E5514;--ink-a1a:#1F4E551A;--ink-a1f:#1F4E551F;--ink-a26:#1F4E5526;--ink-a33:#1F4E5533;--ink-a40:#1F4E5540;--ink-a4c:#1F4E554C;--ink-a59:#1F4E5559;--ink-a66:#1F4E5566;--ink-soft:#3F6368;--panel:#FFF9EE;--panel-a4d:#FFF9EE4D;--panel-a66:#FFF9EE66;--panel-a99:#FFF9EE99;--panel-acc:#FFF9EECC;--panel-ae6:#FFF9EEE6;--panel-aeb:#FFF9EEEB;--paper:#FFF9EE;--paper-ink:#1F4E55;--shade-a12:#1F4E5512;--shade-a14:#1F4E5514;--shade-a1a:#1F4E551A;--shade-a24:#1F4E5524;--shade-a26:#1F4E5526;--shade-a29:#1F4E5529;--shade-a2e:#1F4E552E;--shade-a33:#1F4E5533;--shade-a40:#1F4E5540;--shade-a47:#1F4E5547;--shade-a52:#1F4E5552;--shade-a66:#1F4E5566;--surface:#FFFFFF;--surface-a99:#FFFFFF99;--surface-warm:#FFFDF8;--teal-a1a:#2B9C9B1A;--teal-a1f:#2B9C9B1F;--teal-a26:#2B9C9B26;--teal-a33:#2B9C9B33;--teal-a40:#2B9C9B40;--teal-a55:#2B9C9B55;--teal-ink:#1D7A7A;--turquoise:#2B9C9B}
/* theme-tokens:end */
/* Language and theme buttons on the first screen. Until i18n.js swaps the texts, an English page stays hidden for a moment (at most 2.5s). */
.i18n-wait body{visibility:hidden}
.prefs{position:absolute;top:max(8px,env(safe-area-inset-top));inset-inline-end:10px;z-index:6;display:flex;gap:6px}
.banner-on .prefs{top:78px}.banner-tall .prefs{top:116px}
.prefs button{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 11px;border:1px solid var(--ink-a26);border-radius:999px;background:var(--panel-acc);color:var(--ink);font:600 13px/1 var(--body);box-shadow:var(--shadow-sm)}
.pref-lang[lang=ar]{font-family:var(--heading);font-size:14px}
.pref-theme{padding:0!important}
.pref-theme svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.pref-theme .moon,.pref-theme .half{fill:currentColor;stroke:none}
.pref-theme .sun,.pref-theme .moon,.pref-theme .auto{display:none}
:root[data-theme-mode=light] .pref-theme .sun,:root[data-theme-mode=dark] .pref-theme .moon,:root[data-theme-mode=auto] .pref-theme .auto{display:inline}
.pref-chip{position:absolute;top:calc(100% + 6px);inset-inline-end:0;padding:4px 10px;border-radius:999px;background:var(--ink);color:var(--panel);font:600 12.5px/1.5 var(--body);white-space:nowrap;box-shadow:var(--shadow-sm);opacity:0;transform:translateY(-3px);transition:opacity .2s,transform .2s;pointer-events:none}
.pref-chip.shown{opacity:1;transform:none}
.support-hadith .hadith-meaning{margin-top:6px;font:400 14px/1.6 var(--body);color:var(--ink-soft)}
/* English reads left to right: the few sides that were set by hand are mirrored. */
[dir=ltr] .skip{right:auto;left:16px}
[dir=ltr] .scroll-progress span{transform-origin:left}
[dir=ltr] .dialog-close{left:auto;right:10px}
[dir=ltr] .thanks-x{left:auto;right:12px}
[dir=ltr] .page-soon li:before{margin-left:0;margin-right:10px}
@media(min-width:701px){[dir=ltr] .code-pill{right:auto;left:max(24px,env(safe-area-inset-left))}}
/* English platform names are longer, so on phones the four links take two rows. */
@media(max-width:700px){[dir=ltr] .social-links{grid-template-columns:repeat(2,auto)}}
/* English labels are longer: the follow line, the result buttons and the card buttons get a little more room so they stay on one line. */
[dir=ltr] .follow-line{font-size:14px}
[dir=ltr] .follow-line b{font-size:16px}
[dir=ltr] .result-actions .button{padding-inline:12px;font-size:15px}
[dir=ltr] .copy-toast .toast-actions{grid-template-columns:1fr 1.5fr}
/* Dark mode: the portrait's cream background is toned down so it does not glare. */
:root[data-theme=dark] .hero-portrait>img{filter:brightness(.9)}
/* Dialog titles keep clear of the close button, and the rating labels fit on one line in English. */
.submit-dialog h2{padding-inline-end:46px}
[dir=ltr] .score-bars li{grid-template-columns:7.6em minmax(0,1fr) 2.5em}
[dir=ltr] .score-bars li>span:first-child{white-space:nowrap}
/* Dark mode: the platform icons are drawn in ink, so they are turned light. */
:root[data-theme=dark] .group-links img,:root[data-theme=dark] .social-links img{filter:brightness(0) invert(.88)}

/* The error note in the card on the dark theme. */
:root[data-theme=dark] .toast-note{background:#3a2418;color:#f2b48f}
/* Links to the owner's own page: the name and the owner block in the footer. */
.me-name{color:inherit;text-decoration:none}
.me-name:hover,.me-name:focus-visible{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.me-arrow{display:inline-block;margin-inline-start:.2em;font:700 .5em/1 system-ui,sans-serif;vertical-align:.6em;color:var(--gold-ink)}
[dir=rtl] .me-arrow{transform:scaleX(-1)}
a.owner-head{color:inherit;text-decoration:none}
a.owner-head:hover h2,a.owner-head:focus-visible h2{text-decoration:underline;text-underline-offset:5px}
.owner-head h2 .me-arrow,.owner-head .me-more{color:#e7c27e}
.owner-head .me-more{display:inline-block;margin-top:2px;font:600 13px/1.5 var(--body);text-decoration:underline;text-underline-offset:3px}
.hero-masthead h1{margin:0;font:inherit;color:inherit;letter-spacing:inherit}
/* Questions about Nusuk codes, before the footer. Plain text Google can read; each answer opens in place. */
.faq{position:relative;z-index:1;padding-block:24px 8px}
.faq h2{font-size:clamp(24px,4vw,34px);margin:0}
.faq-sub{margin:6px 0 16px;color:var(--ink-soft);font-size:16px}
.faq-list{display:grid;gap:10px}
.faq-item{border:1px solid var(--card-line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer;list-style:none;font:700 17px/1.5 var(--heading);color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:"+";flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--gold-a1a);color:var(--gold-ink);font:700 20px/1 system-ui,sans-serif;transition:transform .2s}
.faq-item[open] summary:after{transform:rotate(45deg)}
.faq-item summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:16px}
.faq-item p{margin:0;padding:0 18px 16px;color:var(--ink-soft);font-size:16px;line-height:1.8}
@media(min-width:701px){.faq{padding-block:48px 28px}.faq-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
@media(prefers-reduced-motion:reduce){.faq-item summary:after{transition:none}}
.fresh{position:relative;z-index:1;padding-block:24px 8px}.fresh h2{font-size:clamp(24px,4vw,34px)}.fresh-sub,.fresh-note{margin:6px 0 14px;color:var(--ink-soft);font-size:16px}.fresh-note{margin:14px 0 0;font-size:15px}.fresh-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.fresh-list li{padding:10px 12px;border:1px solid var(--card-line);border-radius:12px;background:var(--surface);font:500 15px/1.4 var(--mono,"JetBrains Mono",monospace);text-align:center;user-select:all}.fresh-list:empty,.fresh-list:empty~.fresh-note{display:none}
@media(min-width:701px){.fresh{padding-block:48px 8px}}
.lang-menu{position:absolute;top:calc(100% + 6px);inset-inline-end:0;z-index:7;display:grid;min-width:130px;padding:6px;border:1px solid var(--ink-a26);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-sm)}.lang-menu a{padding:9px 12px;border-radius:9px;font:600 15px/1.3 var(--body);color:var(--ink);text-align:start}.lang-menu a:hover,.lang-menu a:focus-visible{background:var(--panel-acc)}.lang-menu a[aria-current]{background:var(--gold-a1a)}.pref-lang[lang=ur]{font-family:var(--heading);font-size:14px}
.to-top{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right));z-index:44;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--gold-a80);border-radius:50%;background:var(--panel-ae6);color:var(--ink);box-shadow:0 8px 24px var(--shade-a24);backdrop-filter:blur(10px);cursor:pointer;animation:to-top-in .25s ease-out}.to-top[hidden]{display:none}[dir=ltr] .to-top{right:auto;left:max(16px,env(safe-area-inset-left))}.to-top svg{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.to-top:hover{border-color:var(--turquoise);color:var(--turquoise)}.to-top:focus-visible{outline:3px solid var(--turquoise);outline-offset:3px}
@keyframes to-top-in{from{opacity:0;transform:translateY(8px)}}
@media(min-width:701px){.to-top{right:max(30px,env(safe-area-inset-right))}[dir=ltr] .to-top{left:max(30px,env(safe-area-inset-left))}.code-pill:not([hidden])~.to-top{bottom:calc(max(14px,env(safe-area-inset-bottom)) + 68px)}}
.tour{position:fixed;inset:0;z-index:85;pointer-events:none}.tour-spot{position:fixed;top:0;left:0;direction:ltr;box-sizing:border-box;border:2px solid var(--gold);border-radius:12px;box-shadow:0 0 0 2000px var(--shade-a47);transition:transform .35s cubic-bezier(.2,.8,.2,1),width .35s cubic-bezier(.2,.8,.2,1),height .35s cubic-bezier(.2,.8,.2,1),border-radius .35s}.tour-spot[hidden]{display:block;transform:translate(50vw,50vh)!important;width:0!important;height:0!important;border:0;box-shadow:0 0 0 2000px var(--shade-a47)}
.tour-card{position:fixed;width:min(300px,calc(100vw - 24px));padding:14px 16px 12px;border:1px solid var(--gold-a66);border-radius:18px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow-lg);pointer-events:auto;text-align:start;top:0;left:0;transition:translate .35s cubic-bezier(.2,.8,.2,1)}.tour-card.tour-in{animation:tour-in .25s cubic-bezier(.2,.8,.2,1)}
.tour-close{position:absolute;top:8px;inset-inline-end:8px;width:40px;height:40px;border:0;border-radius:10px;background:var(--ink-a14);color:var(--ink);font-size:24px;line-height:1;cursor:pointer}.tour-close[hidden]{display:none}
.tour-title{margin:0 0 4px;padding-inline-end:44px;font:800 18px/1.35 var(--heading);color:var(--ink)}.tour .tour-title:focus,.tour .tour-title:focus-visible{outline:0!important}.tour-center .tour-title,.tour-center .tour-text{text-align:center;padding-inline-end:0}
.tour-text{margin:0 0 10px;font:400 14px/1.6 var(--body);color:var(--ink)}
.tour-actions{display:flex;align-items:center;gap:10px}.tour-center .tour-actions{justify-content:center;gap:14px}.tour-progress{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.tour-progress[hidden]{display:none}.tour-count{font:600 12px/1 var(--body);color:var(--ink);opacity:.75;white-space:nowrap}
.tour-dots{display:flex;gap:4px}.tour-dots span{width:6px;height:6px;border-radius:3px;background:var(--ink-a26);transition:width .2s,background .2s}.tour-dots span.on{width:16px;background:var(--turquoise)}
.tour-actions button{cursor:pointer}.tour-actions button[hidden]{display:none}
.tour-back{min-height:40px;padding:4px 3px;border:0;border-bottom:1px solid currentColor;background:none;color:var(--ink);font:700 14px/1.3 var(--body)}
.tour-next{min-height:44px;padding:0 18px;border:1px solid var(--ink);border-radius:14px;background:var(--ink);color:var(--panel);font:600 15px/1.3 var(--body)}
.tour-support{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 18px;border:1.5px solid var(--gold);border-radius:999px;background:linear-gradient(180deg,var(--cream),var(--cream-deep));color:var(--ink);font:700 14px/1.4 var(--heading);box-shadow:inset 0 1px 0 var(--surface)}.tour-support:before{content:"🤍";font-size:13px}
.tour-actions button:focus-visible,.tour-close:focus-visible{outline:3px solid var(--turquoise);outline-offset:2px}
.tour-wave{display:inline-block;transform-origin:70% 70%;animation:tour-wave 1.2s ease-in-out .3s 1}
@keyframes tour-wave{0%,100%{transform:rotate(0)}15%,45%{transform:rotate(16deg)}30%,60%{transform:rotate(-8deg)}}
@keyframes tour-in{from{opacity:0;transform:translateY(8px) scale(.98)}}
@media(prefers-reduced-motion:reduce){.to-top,.tour-card.tour-in,.tour-wave{animation:none}.tour-spot,.tour-card,.tour-dots span{transition:none}}
.tour-arrow{position:fixed;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.tour-arrow path{fill:none;stroke:var(--gold);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.tour-arrow path+path{transition:opacity .15s}
@media(prefers-reduced-motion:reduce){.tour-arrow path+path{transition:none}}

.key-peek{position:absolute;bottom:2px;z-index:2;width:max-content;display:grid;grid-template-columns:auto auto;align-items:end;column-gap:3px;row-gap:5px;text-decoration:none;color:inherit;filter:none}.key-peek[hidden]{display:none}.key-peek:focus-visible{outline:3px solid var(--turquoise);outline-offset:4px;border-radius:12px}
[dir=rtl] .key-peek{left:calc(100% + 12px)}[dir=ltr] .key-peek{right:calc(100% + 12px)}
.key-door{position:relative;display:grid;place-items:center;width:40px;height:50px;box-sizing:border-box;border-radius:20px 20px 9px 9px;background:#EBDDC3;border:2px solid #C4933A;color:#1F4E55;box-shadow:0 6px 14px var(--shade-a24);animation:key-door 6s linear 1.2s 8}
.key-door-icon{display:grid;width:24px;height:24px;animation:key-turn 6s linear 1.2s 8}.key-door-icon svg{width:24px;height:24px}
.key-door-ok{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:800 22px/1 var(--body);opacity:0;animation:key-ok 6s linear 1.2s 8}
.key-peek-new{grid-column:1/-1;justify-self:center;white-space:nowrap;padding:1px 8px;border-radius:999px;background:var(--ink);color:var(--panel);font:700 13px/1.5 var(--body)}.key-peek-new b{font-weight:inherit}
.key-rabbit{display:block;width:37px;height:64px;object-fit:contain;filter:drop-shadow(0 4px 6px var(--shade-a24))}
@keyframes key-turn{0%{transform:rotate(0)}2.33%{transform:rotate(-22deg)}7%{transform:rotate(22deg)}11.67%{transform:rotate(-22deg)}16.33%{transform:rotate(22deg)}18.67%{transform:rotate(0);opacity:1}19%,40%{opacity:0}40.5%,100%{opacity:1;transform:rotate(0)}}
@keyframes key-door{0%,18.66%{background:#EBDDC3;border-color:#C4933A;transform:scale(1)}18.67%{background:#2E7D4F;border-color:#2E7D4F;transform:scale(1)}21%{transform:scale(1.15)}23.33%{transform:scale(1)}40%{background:#2E7D4F;border-color:#2E7D4F}40.5%,100%{background:#EBDDC3;border-color:#C4933A;transform:scale(1)}}
@keyframes key-ok{0%,18.66%{opacity:0}18.67%,40%{opacity:1}40.5%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.key-door,.key-door-icon,.key-door-ok{animation:none}}
.prefs .pref-tour{padding:0;font:800 19px/1 var(--heading)}
@media(max-width:700px){.hero-masthead{justify-content:flex-start;padding-inline-start:16px}}
@media(max-width:374px){.key-peek-new{contain:inline-size;justify-self:stretch;white-space:normal;text-wrap:balance;text-align:center;border-radius:10px;padding:2px 6px;margin-inline:-26px -4px;line-height:1.3}.key-peek-new b{display:block}}

/* iPhones: one-time card after coming back from Nusuk, inviting them to try the shortcut. */
.ios-nudge{position:fixed;inset-inline:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:85;max-width:460px;margin-inline:auto;padding:12px 14px;border-radius:16px;background:var(--panel);color:var(--ink);border:1px solid var(--gold-a55);box-shadow:0 10px 30px var(--shade-a24);animation:ios-nudge-in .35s ease-out}
.ios-nudge p{margin:0 0 10px;font:600 14.5px/1.7 var(--body)}.ios-nudge div{display:flex;gap:8px;align-items:center}.ios-nudge .button{flex:1;min-height:40px;padding:8px 14px;font-size:15px}.ios-nudge .plain-button{min-height:40px;padding:8px 12px}
@keyframes ios-nudge-in{from{transform:translateY(16px);opacity:0}}
@media (prefers-reduced-motion:reduce){.ios-nudge{animation:none}}
/* The link under the home FAQ to the full /faq page. */
.faq-more{margin:16px 0 0;text-align:center}.faq-more a{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border:1px solid var(--gold-a80);border-radius:999px;background:var(--panel);color:var(--ink);font-weight:700;text-decoration:none}

.toast-support .cs-note{display:block;margin:2px 0 8px;font-size:12px;opacity:.8}
/* Code card: the support part sits in its own soft gold box, hadith first, a filled button, then count and costs */
.toast-support{margin-top:12px;padding:14px 14px 12px;gap:8px;border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);border-radius:16px;background:color-mix(in srgb,var(--gold) 10%,transparent);opacity:1}
.toast-support .ts-quote{font-size:14.5px;font-weight:700;line-height:1.6}
.toast-support .support-cta{margin:2px 0 0;border-color:var(--gold);background:var(--gold);color:#1F2A2C;font-weight:800}
.toast-support .ts-meta{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;opacity:.85}
.toast-support .ts-meta .cs-note{display:inline;margin:0}
.toast-support .ts-meta .supporters-count[hidden]{display:none}
.card-notes .card-opinion{flex:1 1 100%}
/* «كودك وصل لكام واحد؟» under the add-code form. */
.mycode{margin-top:18px;padding-top:14px;border-top:1px dashed var(--ink-a40)}
.mycode-title{margin:0;font-size:17px;font-weight:800}
.mycode-hint{margin:4px 0 0;font-size:14px;opacity:.8}
.mycode-status:empty{display:none}
/* The «كام واحد خد كودك؟» card and its two numbers as pills (people who got it, and who said it worked). */
.mycode{margin-top:20px;padding:14px 14px 12px;border:1px solid var(--teal-a55);border-top:1px solid var(--teal-a55);border-radius:14px;background:var(--teal-a1a)}
.mycode .submit-row{margin-top:10px}
.mycode-status{margin-top:10px;line-height:2.1}
.mc-num{display:inline-block;margin-inline:3px;padding:0 10px;border-radius:999px;font:800 17px/1.6 var(--heading);direction:ltr;unicode-bidi:isolate}
.mc-given{background:var(--turquoise);color:var(--panel)}
.mc-works{background:var(--gold);color:#1F2A2C}
/* «ضيف كودك» buttons carry a quieter second line: the same place shows how many people got your code. */
.add-sub{display:block;white-space:nowrap;font-size:.8em;font-weight:500;line-height:1.3;opacity:.75}
.hero-add>span{display:block}
.cf .cf-quick li>a>span,.cf .cf-quick li>button>span{display:block;min-width:0}
/* Under «أكواد نسك مجانًا»: the site is independent of Nusuk. */
.hero-masthead{flex-wrap:wrap;row-gap:0}
.hero-indep{flex-basis:100%;margin:0;font-size:12px;font-weight:500;line-height:1.5;opacity:.72;text-align:center}
/* Room for the line under the masthead, on top of each size's own padding. */
@media(max-width:699px){.hero-layout{border-top:20px solid transparent}}
@media(max-width:699px) and (max-height:700px){.hero-layout{border-top-width:36px}}
@media(max-width:699px){.hero-masthead{justify-content:center;padding-inline:16px}}
