graph TD A["๐จ Photo-resist\ncoating"] --> B["๐ก Illumination"] B --> C["๐ธ Exposure"] C --> D["โ๏ธ Etching"] D --> E["๐งช Doping"] E --> F["๐ Metal\nconnection"] style A fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style B fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style C fill:#ffe0b2,stroke:#e65100,color:#2e3440,stroke-width:3px style D fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style E fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style F fill:#e8eaf6,stroke:#283593,color:#2e3440,stroke-width:3px
graph LR M["๐ญ Ideal mask\nlayout"] --> D["๐ Diffraction\n+ image errors"] D --> W["๐ Distorted wafer\nlow yield"] MC["๐ญ Mask + OPC\n(pre-compensated)"] --> DC["๐ Diffraction\n(cancels errors)"] DC --> WC["๐ Faithful wafer\nhigh yield"] style M fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style D fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style W fill:#ffe0b2,stroke:#e65100,color:#2e3440,stroke-width:3px style MC fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style DC fill:#e8eaf6,stroke:#283593,color:#2e3440,stroke-width:3px style WC fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
graph LR A["๐ Layout"] --> B["๐จ Phase Assignment"] B --> C["โ๏ธ OPC"] C --> D["๐ญ Mask"] D --> E["๐จ๏ธ Lithography"] style A fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style B fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style C fill:#fff3e0,stroke:#e65100,color:#2e3440,stroke-width:3px style D fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style E fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px
graph TD subgraph "Conventional Mask" A1["Aperture\n0ยฐ"] --> W1["+ Bright edge\nblurry boundary ๐ซ๏ธ"] A2["Aperture\n0ยฐ"] --> W1 end subgraph "Phase Shifting Mask" B1["Aperture\n0ยฐ"] --> W2["|E1 โ E2|ยฒ โ 0\nsharp dark line โ "] B2["Aperture\n180ยฐ"] --> W2 end style A1 fill:#ffe0b2,stroke:#e65100,color:#2e3440,stroke-width:3px style A2 fill:#ffe0b2,stroke:#e65100,color:#2e3440,stroke-width:3px style W1 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style B1 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style B2 fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style W2 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px
graph LR F1["๐งฉ Feature A"] -- "โ ๏ธ conflict\nโค b" --> F2["๐งฉ Feature B"] F2 -- "โ ๏ธ conflict\nโค b" --> F3["๐งฉ Feature C"] F3 -- "โ ๏ธ conflict\nโค b" --> F4["๐งฉ Feature D"] F1 -. "โ ok\n> b" .-> F4 F2 -. "โ ok\n> b" .-> F4 style F1 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style F2 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style F3 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style F4 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px
graph LR G["๐ Graph G\nweighted"] --> MST["๐ณ Max-weight\nspanning tree"] MST --> COL["๐จ 2-color\nthe tree"] COL --> R{"๐ Scan edge:"} R -->|"endpoints differ"| K["โ Keep"] R -->|"same color"| X["โ ๏ธ Conflict\n+ weight"] K --> D["๐ Assignment\nO(N log N)"] X --> D style G fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style MST fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style COL fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style R fill:#ffe0b2,stroke:#e65100,color:#2e3440,stroke-width:3px style K fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style X fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style D fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px
graph TD G["๐ Graph G"] --> D1["๐ช Biconnected\ndecomposition"] D1 --> D2["๐๏ธ Planar\napproximation\nO(nยฒ)"] D2 --> D3["๐๏ธ Planar\nembedding"] D3 --> D4["๐ Dual graph\nP*"] D4 --> D5["๐งฉ Min perfect\nmatching (odd V)"] D5 --> D6["๐ Reinsert\nnon-conflict edges"] D6 --> O["๐ Optimal phase\nassignment โ "] style G fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style D1 fill:#ffe0b2,stroke:#e65100,color:#2e3440,stroke-width:3px style D2 fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style D3 fill:#e8eaf6,stroke:#283593,color:#2e3440,stroke-width:3px style D4 fill:#f3e5f5,stroke:#7b1fa2,color:#2e3440,stroke-width:3px style D5 fill:#ffcdd2,stroke:#c62828,color:#2e3440,stroke-width:3px style D6 fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style O fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px